none
CellClick RRS feed

Yanıtlar

  • Rauf bey, bu şekilde satırlara sütunlara doğrudan erişerek programlama yapmak hem bu gibi beklenmedik durumları çok olası hale getirir , hemde kodun okunabilirliği azaldığından sizin uygulama geliştirme sürecinizi ve emeğinizi gereksiz yere arttırır.

    Ayrıca parametresiz bir şekilde sql cümleleri kurmayın , 0.sütundaki x satırdaki verinin meh_id ye eşit olduğunu garanti etme durumunuz olur , hadi ettiniz eğer başkası kodu decompile edebilirse ki edecek bariz bir sql açığı bırakmış olursunuz.

    Windowsform dan da kurtulun , WPF kullanın datagridinde itemsource özelliğini kullanın ve bu özelliğe bir observablecollection atayın yada Inotifypropertychange arayüzünü araştırın.Bu denli uğraşmadan hızlı ve kolay bir şekilde uygulama geliştirebilirsiniz.


    • Yanıt Olarak İşaretleyen Rauf_55 24 Şubat 2019 Pazar 19:50
    24 Şubat 2019 Pazar 19:35
  • Şöyle yapsam doğru mu?
          
    using (SqlConnection con=new SqlConnection(baglanti.ConnectionString))
    using (SqlCommand cmd = new SqlCommand(@"select * from Xususiyyet where meh_id=@parametre
         ", con))
    {
      cmd.Parameters.Add("@parametre", SqlDbType.VarChar).Value = datamehsul.Rows[index].Cells[0].Value.ToString();
      
      con.Open();
      cmd.ExecuteNonQuery();
      con.Close();
    }

       Gibi... Bakın mesela bir tablonuz var tablonun adı çalışan , kolonları da adsoyad,yaş,meslek olsun.

       Siz bir sınıf oluşturmalısınız bu sınıfın adı çalışan proeprtyleride adsoyad,yaş ve meslek olmalı.Sonra veritabanından veriyi çekip çektiğiniz veriyle bu sınıftan nesneler türetmelisiniz.Sonra bu türettiğiniz nesneleri tutabilen bir koleksiyon kullanmalısınız(observablecollection,list vs.) bu koleksiyonuda datagridin datasource/itemsource özelliğine atamalısınız.Böylece doğrudan koleksiyon üzerindeki verilere linq ile erişebilir ve bu verileri yine linq ile manipüle edebilirsiniz , hem kod okunaklı olur hemde sizin datagridle işiniz olmaz.



    • Düzenleyen Mehmet Emin Kaymaz 24 Şubat 2019 Pazar 22:19
    • Yanıt Olarak İşaretleyen Rauf_55 25 Şubat 2019 Pazartesi 03:36
    24 Şubat 2019 Pazar 21:36

Tüm Yanıtlar

  • Rauf bey, bu şekilde satırlara sütunlara doğrudan erişerek programlama yapmak hem bu gibi beklenmedik durumları çok olası hale getirir , hemde kodun okunabilirliği azaldığından sizin uygulama geliştirme sürecinizi ve emeğinizi gereksiz yere arttırır.

    Ayrıca parametresiz bir şekilde sql cümleleri kurmayın , 0.sütundaki x satırdaki verinin meh_id ye eşit olduğunu garanti etme durumunuz olur , hadi ettiniz eğer başkası kodu decompile edebilirse ki edecek bariz bir sql açığı bırakmış olursunuz.

    Windowsform dan da kurtulun , WPF kullanın datagridinde itemsource özelliğini kullanın ve bu özelliğe bir observablecollection atayın yada Inotifypropertychange arayüzünü araştırın.Bu denli uğraşmadan hızlı ve kolay bir şekilde uygulama geliştirebilirsiniz.


    • Yanıt Olarak İşaretleyen Rauf_55 24 Şubat 2019 Pazar 19:50
    24 Şubat 2019 Pazar 19:35
  • Cevabınız için çok teşekkür ederim. Bu konu hakta detaylı bilgiyi nereden bula bilirim?
    24 Şubat 2019 Pazar 19:48
  • Şöyle yapsam doğru mu?
    24 Şubat 2019 Pazar 19:53
  • Şöyle yapsam doğru mu?
          
    using (SqlConnection con=new SqlConnection(baglanti.ConnectionString))
    using (SqlCommand cmd = new SqlCommand(@"select * from Xususiyyet where meh_id=@parametre
         ", con))
    {
      cmd.Parameters.Add("@parametre", SqlDbType.VarChar).Value = datamehsul.Rows[index].Cells[0].Value.ToString();
      
      con.Open();
      cmd.ExecuteNonQuery();
      con.Close();
    }

       Gibi... Bakın mesela bir tablonuz var tablonun adı çalışan , kolonları da adsoyad,yaş,meslek olsun.

       Siz bir sınıf oluşturmalısınız bu sınıfın adı çalışan proeprtyleride adsoyad,yaş ve meslek olmalı.Sonra veritabanından veriyi çekip çektiğiniz veriyle bu sınıftan nesneler türetmelisiniz.Sonra bu türettiğiniz nesneleri tutabilen bir koleksiyon kullanmalısınız(observablecollection,list vs.) bu koleksiyonuda datagridin datasource/itemsource özelliğine atamalısınız.Böylece doğrudan koleksiyon üzerindeki verilere linq ile erişebilir ve bu verileri yine linq ile manipüle edebilirsiniz , hem kod okunaklı olur hemde sizin datagridle işiniz olmaz.



    • Düzenleyen Mehmet Emin Kaymaz 24 Şubat 2019 Pazar 22:19
    • Yanıt Olarak İşaretleyen Rauf_55 25 Şubat 2019 Pazartesi 03:36
    24 Şubat 2019 Pazar 21:36
  • Teşekkür ederim
    25 Şubat 2019 Pazartesi 03:36