none
Datagridview içindeki kontrollere erişme RRS feed

  • Soru

  • Arkadaşlar Merhaba,

    Form üzerinde textbox larıma girdiğim verilerimi veritabanıma kayıt yapabiliyorum fakat ek olarak datagridview e girdiğim verileri de aynı insert sorgum ile tablolarıma nasıl kayıt yapabilirim. Aşağıda örnek olarak açılamaya çalıştım. Datargridview içindeki text kontrollerine erişip sorgularımda kullanmak istiyorum.

    Desteklerinizi rica ediyorum.

    c# + mssql server

    Private Void Kaydet();

    {

     using (SqlConnection conn = ConnSql.conn)
                using(SqlCommand cmd = new SqlCommand(komut,conn))
                {

                    cmd ="insert into Hareket 
    (Tarih,Tip,İrsaliyeNo,ÜrünKodu,Miktar)Values(@Tarih,@Tip,@İrsaliyeNo,@ÜrünKodu,@Miktar);

                    cmd.Parameters.Add("@Tarih", SqlDbType.DateTime).Value = HarTarih.Value.Date;
                    cmd.Parameters.Add("@Tip", SqlDbType.Int).Value = cbHareketTip.SelectedIndex;
                    cmd.Parameters.Add("@İrsaliyeNo", SqlDbType.NVarChar).Value = irsaliyeNo.Text;

                   // Aşağıdaki şekilde datagridview deki içindeki textleri nasıl kullanabilirim ?

                     cmd.Parameters.Add("@ÜrünKodu", SqlDbType.NVarChar).Value = Datagridview1.TextÜrünKodu.Text; // gibi...

                     

                     cmd.Parameters.Add("@Miktar", SqlDbType.NVarChar).Value = Datagridview1.TextMiktar.Text; // gibi..

                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }

         }

    }

    Syg.


    • Düzenleyen Levent_01 5 Kasım 2020 Perşembe 21:50
    5 Kasım 2020 Perşembe 21:48

Yanıtlar

  • TextBox'tan alıp bir listeye doldurmalı bu listeyide BindingSource'a DataSource olarak vermelisin. Bunun dışında yapacağın herşey ve sana birazdan verecekleri row indexli col index li yanıtlar da dahil olmak üzere hepsi yanlış olacaktır.

    BindingSource'a liste bağladığında elemanlar rowlara boxing yapılmış olur. Sen bunu istediğin anda unbox yapıp kullanırsın. Örneğin iki textbox olsun, ad ve soyad için;


    class Kişi
    {
       public string Ad { get; set; }
       public string Soyad { get; set; }
    }


    private List<Kişi> kişiler = new List<Kişi>();

    bunu DataSources'e ekleyip aynı dataset kullanır gibi gride bağlamalısın. TextBox ları da binding source'a bağlamalısın. kişiler listesini datasource'a verdiğinde olay aynı devam.

    Seçili satırı almak istediğinde;

    var seçilenKişi = (Kişi)bindingSourceKişiler.Current;
    
    ya da
    
    var seçilenKişi = bindingSourceKişiler.Current as Kişi;
    


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com



    6 Kasım 2020 Cuma 20:21
    Moderatör

Tüm Yanıtlar

  • DataGridView'e o verileri kim koydu?

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    6 Kasım 2020 Cuma 05:29
    Moderatör
  • Önay Hocam Selamlar,

    Datagridview e verileri manuel gireceğim, yani nasıl textbox a veri yazıp kaydediyorum aynı şekilde datagridview e el ile veri girip hem form üzerindeki textboxlardaki veriler hemde datagridview girdiğim verileri kaydetmek istiyorum.

    Normalde Bindingsource kullanarak bu işlemleri hallediyorum fakat formlarından birinde bu şekilde yapmak istedim.

    Syg.

    6 Kasım 2020 Cuma 18:59
  • TextBox'tan alıp bir listeye doldurmalı bu listeyide BindingSource'a DataSource olarak vermelisin. Bunun dışında yapacağın herşey ve sana birazdan verecekleri row indexli col index li yanıtlar da dahil olmak üzere hepsi yanlış olacaktır.

    BindingSource'a liste bağladığında elemanlar rowlara boxing yapılmış olur. Sen bunu istediğin anda unbox yapıp kullanırsın. Örneğin iki textbox olsun, ad ve soyad için;


    class Kişi
    {
       public string Ad { get; set; }
       public string Soyad { get; set; }
    }


    private List<Kişi> kişiler = new List<Kişi>();

    bunu DataSources'e ekleyip aynı dataset kullanır gibi gride bağlamalısın. TextBox ları da binding source'a bağlamalısın. kişiler listesini datasource'a verdiğinde olay aynı devam.

    Seçili satırı almak istediğinde;

    var seçilenKişi = (Kişi)bindingSourceKişiler.Current;
    
    ya da
    
    var seçilenKişi = bindingSourceKişiler.Current as Kişi;
    


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com



    6 Kasım 2020 Cuma 20:21
    Moderatör
  • Önay Hocam Selamlar,

    Desteğiniz için teşekkür ederim. Datagridview i veri listeleme dışında kullanmaya çalışmam sanırım bir hata.

    Verilerimi form üzerinde yerleştirdiğim text kontrollerimden girerek sorunu aşabildim.

    Syg.

    7 Kasım 2020 Cumartesi 13:24