Soran
Dataset İçerisinden Belirli Bilgileri Almak

Genel Tartışma
-
Arkadaşlar Merhaba.
FlowLayoutPanel İçerisine Dinamik butonlar Oluşturuyorum. Oluşan butonların Tag larına ise "i" değerini kaydediyorum.
Veritabanına kayıt eklerkende bu tag değerini ürün sıra no olarak ekliyorum. Şimdi sormak istediğim Diyelim 20 buton oluştu. "i" değeri 15 olan Butona veritabanında sıra değeri 15 olan verinin bilgilerini nasıl çekeceğim. Yani o i değerine ait bir sıra numaralı veri varsa gelecek yoksa yeni veri kaydı için butonu boş bırakıp geçecek. Umarım anlatabilmişimdir. Önemli bir konu benim için şimdiden teşekkürler
- Değiştirilmiş Tür Kyamuran SalibryamMicrosoft contingent staff, Moderator 17 Mayıs 2016 Salı 07:23
Tüm Yanıtlar
-
-
-
for (int i = 0; i < Sayi-1; i++) { Button Btn = new Button(); Btn.AutoSize = true; Btn.Width = BG; Btn.Height = BY; Btn.Tag = i.ToString(); Btn.FlatStyle = FlatStyle.Flat; Btn.ForeColor = Color.White; Btn.Tag = i.ToString(); Btn.Click += UrunTikla; var Marg = Btn.Margin; Marg.Left = 0; Marg.Top = 0; Btn.Margin = Marg; UrunlerPanel.Controls.Add(Btn); }
Hocam bu şekilde ekledim. Buradaki i Sırasına göre DB Deki Bilginin Yine i Değeri Kendine Eşit Olan Butona Eklenmesini istiyorum. Sizin verdiğiniz örneği deneyceğim şimdi -
foreach (Control item in UrunlerPanel.Controls) { if (item is Button) { Button txt = item as Button; if (txt.Tag == urunKaydet.PCPOSURUNLER.Rows[0]["SIRA"].ToString()) { txt.Text = urunKaydet.PCPOSURUNLER.Rows[0]["STOKADI"].ToString(); } } } }
bu şekilde yaptım hocam. Sıfırıncı alanda bir değer yok diyor -
-
PCPOSURUNLER tablosunda kayıt yok sanırım. Break point koyarak bakabilirsin.
Onun haricinde Tag özelliği object türü olduğu için her türden değer saklayabilir ToString yazmana gerek yok. Bir de for içinde Btn.Tag = i.ToString() i iki kere yazmışsın.
-
-
-
-
Veri varsa niye sıfırıncı alanda değer yok diye hatayı niye versin. O yüzden diye breakpoint koyup bir incele diye. Ya satır yok ya da satırda ilgili sütunda veri yok.
20 Tane buton var. Veri olsa bile 0 Değil 7 Diyecek. Aynı şeyi tekrar edip duruyum. Eğer o satır karşılığında veri yoksa texti olmayan ve text eklenebişlir bir buton olarak geçsin diyorum. Siz hala veri yok diyorsunuz. Biliyorum veri olmadığını. Yukarıdaki kodlar zaten hatalı hatalı olmasa istediğimi verirdi. -
-
private void Form1_Load(object sender, EventArgs e) { int FY = FLURUNLER.Height; // flowpanel Yükseklik int FG = FLURUNLER.Width; // Panel Genişlik int BY = 142; // Buton Yükseklik int BG = 75; // buton Genişlik int FLWALAN = FY * FG; // Panel Alanı int BUTONALAN = BY * BG; // Buton Alanı int Sayi = FLWALAN / BUTONALAN;//Sıgabilecek Btn Sayısı FLURUNLER.Controls.Clear(); for (int i = 1; i <= Sayi; i++) { Button Btn = new Button(); Btn.Width = BG; Btn.Height = BY; Btn.FlatStyle = FlatStyle.Flat; Btn.ForeColor = Color.Black; var Marg = Btn.Margin; Btn.Text = "BOŞ"; Marg.Left = 0; Marg.Top = 0; Btn.Margin = Marg; Btn.Tag = i; Btn.FlatStyle = FlatStyle.Flat; FLURUNLER.Controls.Add(Btn); kategoriTableAdapter1.Fill(testDataSet.Kategori); } } private void button2_Click(object sender, EventArgs e) { int i = 0; foreach (DataRow dr in testDataSet.Kategori.Rows) { try { Button btn = FLURUNLER.Controls[i++] as Button; btn.Text = dr["Name"].ToString(); } catch { return; } } }
gibi bir şey mi istediğin
- Düzenleyen Olcay GUZEL 13 Mayıs 2016 Cuma 17:33
-
foreach (Control item in UrunlerPanel.Controls) { if (item is Button) { Button txt = item as Button; if (txt.Tag == urunKaydet.PCPOSURUNLER.Rows[0]["SIRA"].ToString()) { txt.Text = urunKaydet.PCPOSURUNLER.Rows[0]["STOKADI"].ToString(); } } } }
bu şekilde yaptım hocam. Sıfırıncı alanda bir değer yok diyorboş satır olduğunda hata veriyor ozaman şu şekilde denermisiniz
foreach (DataRow satir in urunKaydet.PCPOSURUNLER.Rows) { if (satir["SIRA"].ToString() != "") { foreach (Control item in UrunlerPanel.Controls) { if (item is Button) { Button txt = item as Button; if (txt.Tag == satir["SIRA"].ToString()) { //işleminiz } } } } } }
- Düzenleyen tetee 13 Mayıs 2016 Cuma 17:43
-
foreach (Control item in UrunlerPanel.Controls) { if (item is Button) { Button txt = item as Button; if (txt.Tag == urunKaydet.PCPOSURUNLER.Rows[0]["SIRA"].ToString()) { txt.Text = urunKaydet.PCPOSURUNLER.Rows[0]["STOKADI"].ToString(); } } } }
bu şekilde yaptım hocam. Sıfırıncı alanda bir değer yok diyorboş satır olduğunda hata veriyor ozaman şu şekilde denermisiniz
foreach (DataRow satir in urunKaydet.PCPOSURUNLER.Rows) { if (satir["SIRA"].ToString() != "") { foreach (Control item in UrunlerPanel.Controls) { if (item is Button) { Button txt = item as Button; if (txt.Tag == satir["SIRA"].ToString()) { //işleminiz } } } } } }
foreach (Control item in UrunlerPanel.Controls) { foreach (DataRow satir in urunKaydet.PCPOSURUNLER.Rows) { if (satir["SIRA"].ToString() != "") { if (item is Button) { Button txt = item as Button; if (Btn.Tag.ToString() == urunKaydet.PCPOSURUNLER.Rows[i]["SIRA"].ToString()) { Btn.Text = urunKaydet.PCPOSURUNLER.Rows[i]["STOKADI"].ToString(); } } else { } } } } }
olmadı malesef
-
-
-
foreach (Control item in UrunlerPanel.Controls) { if (item is Button) { Button txt = item as Button; if (txt.Tag == urunKaydet.PCPOSURUNLER.Rows[0]["SIRA"].ToString()) { txt.Text = urunKaydet.PCPOSURUNLER.Rows[0]["STOKADI"].ToString(); } } } }
bu şekilde yaptım hocam. Sıfırıncı alanda bir değer yok diyorboş satır olduğunda hata veriyor ozaman şu şekilde denermisiniz
foreach (DataRow satir in urunKaydet.PCPOSURUNLER.Rows) { if (satir["SIRA"].ToString() != "") { foreach (Control item in UrunlerPanel.Controls) { if (item is Button) { Button txt = item as Button; if (txt.Tag == satir["SIRA"].ToString()) { //işleminiz } } } } } }
foreach (Control item in UrunlerPanel.Controls) { foreach (DataRow satir in urunKaydet.PCPOSURUNLER.Rows) { if (satir["SIRA"].ToString() != "") { if (item is Button) { Button txt = item as Button; if (Btn.Tag.ToString() == urunKaydet.PCPOSURUNLER.Rows[i]["SIRA"].ToString()) { Btn.Text = urunKaydet.PCPOSURUNLER.Rows[i]["STOKADI"].ToString(); } } else { } } } } }
olmadı malesef
bu en üstte olmalı foreach (DataRow satir in urunKaydet.PCPOSURUNLER.Rows)
foreach (DataRow satir in urunKaydet.PCPOSURUNLER.Rows) { if (satir["SIRA"].ToString() != "") { foreach (Control item in UrunlerPanel.Controls) { if (item is Button) { Button txt = item as Button; if (txt.Tag == satir["SIRA"].ToString()); {txt.Text=satir["STOKADI"].ToString(); } } } } } }
- Düzenleyen tetee 14 Mayıs 2016 Cumartesi 00:27