none
Dataset İçerisinden Belirli Bilgileri Almak RRS feed

  • 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

    13 Mayıs 2016 Cuma 13:45

Tüm Yanıtlar

  • merhaba şöyle bir yol izleyebilirsiniz

                foreach (Control item in flowLayoutPanel1.Controls)
                {
                    if (item is Button)
                    {
                        Button txt = item as Button;
                        if (txt.Name == "datatable veya datarowdan çektiğin değer")
                            //varsa işlemler
                        else
                            //yoksa işlemler
                    }
                }

    13 Mayıs 2016 Cuma 14:21
  • Tag lara i yerine Id koysan, daha sonra bindingSource'un Find methodu ile istediğin kayda navigate edebilirsin.

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

    13 Mayıs 2016 Cuma 14:23
    Moderatör
  • 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
    13 Mayıs 2016 Cuma 14:32
  • 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
    13 Mayıs 2016 Cuma 14:35
  • 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.

    13 Mayıs 2016 Cuma 15:14
  • 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.

    Soruyu okudunuzmu zaten  olmazsa boş geçecek varsa değer atayacak 
    13 Mayıs 2016 Cuma 15:16
  • Benim demek istediğim farklı. Tabloda bir şey yoksa ToString fonksiyonu neyi string e çevirecek.
    13 Mayıs 2016 Cuma 15:18
  • Benim demek istediğim farklı. Tabloda bir şey yoksa ToString fonksiyonu neyi string e çevirecek.
    Tabloda veri var. Tamda konumuz o varsa yazacak yoksa hata vermeden geçecek
    13 Mayıs 2016 Cuma 15:20
  • 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.
    13 Mayıs 2016 Cuma 15:26
  • 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. 
    13 Mayıs 2016 Cuma 15:28
  • Güncel. Önay hocam bi yardım edebilir misiniz size zahmet
    13 Mayıs 2016 Cuma 16:53
  • 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


    13 Mayıs 2016 Cuma 17:24
  • 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

    boş 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
    13 Mayıs 2016 Cuma 17:39
  • 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

    boş 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

    13 Mayıs 2016 Cuma 18:04
  • ammyy id gönderebilirmisin

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

    13 Mayıs 2016 Cuma 18:07
    Moderatör
  • 127 193 252

    7156 Team Hocam

    13 Mayıs 2016 Cuma 18:09
  • 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

    boş 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

    yanlış yazmışsınız lütfen gönderdiğim gibi yapın mesaja dikkatli bakmamışsınız tüm kodları silin ve aşağıdaki kodları ekleyin  

    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
    13 Mayıs 2016 Cuma 18:13