none
Fonksiyona gönderdiğim değeri Nesnenin ismi olarak alma. RRS feed

  • Soru

  • merhabalar yapmak istediğim şey fonksiyona gönderdiğim parametreleri textboxun name'i olarak belirtme. kodda gösteriyim.

    KF.kullanici_firmalarDt.DataSource = sorgu.ToList();

    burdaki kullanici_firmalarDt adlı datagridin  adını dinamik belirtme şu şekilde

    KF.parametre bu kısıma gelecek.DataSource = sorgu.ToList();

     fonksiyonda görürseniz daha iyi anlayacaksınız.

     public void Ara(string tablo,string kolon,string nesne,string dt) 
    {
                kullanici_firmalar KF = (kullanici_firmalar)Form.ActiveForm;
                var sorgu = context.TABLO PARAMETRESİ BURAYA GELCEK !!!!!!.Where(w => w.firma_adi.Contains(KF.kullanici_firma_ara_textbox.Text));
                KF.kullanici_firmalarDt.DataSource = sorgu.ToList();
                KF.kullanici_firmalarDt.RowsDefaultCellStyle.ForeColor = Color.White;
                KF.kullanici_firmalarDt.RowsDefaultCellStyle.BackColor = Color.DarkRed;
    }

    mskorkt

    21 Aralık 2016 Çarşamba 15:24

Yanıtlar

  • sql injection kokusu alıyorum. lakin ile işini görebilirsin.

    dbContext.Database.SqlQuery<SpecificModel>(string.Format("SELECT * FROM {0} WHERE ID=@p0", tableName), 1)

    http://stackoverflow.com/questions/31035238/dynamic-table-name-with-entity-framework

    eper detaylı arama işlevleri istiyorsan tavsiyem elasticSearch e bak.

    • Yanıt Olarak İşaretleyen mskorkt 26 Aralık 2016 Pazartesi 11:03
    22 Aralık 2016 Perşembe 08:03

Tüm Yanıtlar

  • sql injection kokusu alıyorum. lakin ile işini görebilirsin.

    dbContext.Database.SqlQuery<SpecificModel>(string.Format("SELECT * FROM {0} WHERE ID=@p0", tableName), 1)

    http://stackoverflow.com/questions/31035238/dynamic-table-name-with-entity-framework

    eper detaylı arama işlevleri istiyorsan tavsiyem elasticSearch e bak.

    • Yanıt Olarak İşaretleyen mskorkt 26 Aralık 2016 Pazartesi 11:03
    22 Aralık 2016 Perşembe 08:03
  • select ben yazmak istemiyorum dersen. Stringden type almak için


    var type = Type.GetType("A");
    context.Set(type).Load();
    var result = context.Set(type).Local.Cast<object>().ToList();

    http://stackoverflow.com/questions/33855130/entity-framework-query-table-name-dynamically-based-on-input-parameter

    22 Aralık 2016 Perşembe 08:07
  • çok teşekkür ettim deneyecem şimdi.

    mskorkt

    22 Aralık 2016 Perşembe 10:00
  • o şekilde isteğimi karşılamıyor olmuyor yani şöyle bir çözüm buldum da bu seferde proje bitene kadar hangi stunu  aramak istesem onun için if yazacam gibi.

    public void Ara(string tablo,string kolon,string nesne,DataGridView dt) 
            {
                if (tablo == "firmalar")
                {
                    var sorgu = context.firmalar.Where(w => w.firma_adi.Contains(nesne));
                    dt.DataSource = sorgu.ToList();
                }
                else if (tablo == "markalar")
                {
                    var sorgu = context.markalar.Where(w => w.marka_adi.Contains(nesne));
                    dt.DataSource = sorgu.ToList();
                }
                else if (tablo == "kullanici")
                {
                    var sorgu = context.markalar.Where(w => w.marka_adi.Contains(nesne));
                    dt.DataSource = sorgu.ToList();
                }
                else if (tablo == "urunler")
                {
                    var sorgu = context.urunler.Where(w => w.urun_adi.Contains(nesne));
                    dt.DataSource = sorgu.ToList();
                }
                else if (tablo == "personel")
                {
                    var sorgu = context.personel.Where(w => w.personel_adi.Contains(nesne));
                    dt.DataSource = sorgu.ToList();
                }
                else
                {
                    var sorgu = context.notlar.Where(w => w.not_baslik.Contains(nesne));
                    dt.DataSource = sorgu.ToList();
                }

                dt.RowsDefaultCellStyle.ForeColor = Color.White;
                dt.RowsDefaultCellStyle.BackColor = Color.DarkRed;
            }

    daha akılcı bir çözüm lazım 

                

    mskorkt

    22 Aralık 2016 Perşembe 11:28