En iyi yanıtlayıcılar
Datagridview içindeki kontrollere erişme

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
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
- Düzenleyen Önay YALÇINERModerator 6 Kasım 2020 Cuma 20:30
- Yanıt Olarak İşaretleyen Levent_01 7 Kasım 2020 Cumartesi 13:24
Tüm Yanıtlar
-
-
Ö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.
-
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
- Düzenleyen Önay YALÇINERModerator 6 Kasım 2020 Cuma 20:30
- Yanıt Olarak İşaretleyen Levent_01 7 Kasım 2020 Cumartesi 13:24
-