Entity Framework ile Ek Sorgu İşlemleri

Aşağıdaki kod bloğunda normal sql query’sini context’imiz ile execute ettiriyoruz ve filtreleme işlemi gerçekleştiriyoruz.

Projede kullandığım şekli ise “suriyede savaş devam ediyor” gibi bir terim arandığında cümleyi boşlukları ile ayırıp (split) bir dizide topluyorum ve içerisinde dönerek sorguya ekletiyorum.

Sorun çıkartmaması için tırnakları temizliyoruz ve repeater’ımıza veriyoruz.

string query = "SELECT TOP 50 * FROM VHABERLISTESI WHERE HABID > 0";

            if (string.IsNullOrEmpty(txtBaslik.Text.Trim()) != true)
            {
                string[] gelen = txtBaslik.Text.Trim().Split(' ');

                query += " AND (";
                int adim = 1;
                foreach (string item in gelen)
                {
                    string das = item.Replace("'", "").Replace("\"", "");
                    if(adim == 1)
                        query += "HABBASLIK LIKE '%" + das + "%'";
                    else
                        query += " OR HABBASLIK LIKE '%" + das + "%'";

                    adim++;
                }
                query += ")";
            }

            if (string.IsNullOrEmpty(txtYonet.Text.Trim()) != true)
            {
                string[] gelen = txtYonet.Text.Trim().Split(' ');

                query += " AND (";
                int adim = 1;
                foreach (string item in gelen)
                {
                    string das = item.Replace("'", "").Replace("\"", "");
                    if (adim == 1)
                        query += "YONETAD LIKE '%" + das + "%'";
                    else
                        query += " OR YONETAD LIKE '%" + das + "%'";

                    adim++;
                }

                adim = 1;
                foreach (string item in gelen)
                {
                    string das = item.Replace("'", "").Replace("\"", "");
                    if (adim == 1)
                        query += "YONETSOYAD LIKE '%" + das + "%'";
                    else
                        query += " OR YONETSOYAD LIKE '%" + das + "%'";

                    adim++;
                }

                query += ")";
            }

            if (!string.IsNullOrEmpty(datepicker.Text.Trim()))
                query += " AND HABTARIH > CONVERT(DATETIME,'" + datepicker.Text.Trim() + "',104) AND HABTARIH < CONVERT(DATETIME,'"+ Convert.ToDateTime(datepicker.Text.Trim()).AddDays(1) +"',104)";

            if (!string.IsNullOrEmpty(datepicker1.Text.Trim()))
                query += " AND HABGUNCELTARIH > CONVERT(DATETIME,'" + datepicker1.Text.Trim() + "',104) AND HABGUNCELTARIH < CONVERT(DATETIME,'" + Convert.ToDateTime(datepicker1.Text.Trim()).AddDays(1) + "',104)";

            query += " ORDER BY HABID DESC";

            rptFiltre.DataSource = db.ExecuteStoreQuery<VHABERLISTESI>(query, null).ToList();
            rptFiltre.DataBind();

3,453 total views, 2 views today

No Comments

Leave a Comment

Ulaşım için: Facebook: /ganigani Twitter: @abdulgani_demir


*

%d blogcu bunu beğendi: