none
C# Sql veritabanımdan datagridview'e çektiğim veri 2. satıra eklenmiyor aynı satırı güncelliyor alt alta eklemesini nasıl yaparım RRS feed

  • Soru

  • Merhaba hazırlamaya çalıştığım programda datagridview'e tek tek veri çekmek istiyorum veriyi her çektiğimde ilk satıra yazıyor ilk satır doluysada ikinci satıra eklemiyor ilk satırın üstüne yazıyor kodlarım ektedir .
    int barkod = Convert.ToInt32(textBox2.Text);
                SqlDataAdapter da = new SqlDataAdapter("select urun_barkod,urun_adi,urun_fiyati from Urun where urun_barkod='"+barkod+"'", con);
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                con.Open();
                da.Fill(dt);
                dataGridView1.DataSource = dt;
                con.Close(); 

    26 Eylül 2022 Pazartesi 07:42

Tüm Yanıtlar

  • Sizin kodunuz, düzenli olarak yeni bir DataSource veriyor. Bu yüzden sadece son gelen sonuçları görüyorsunuz. DataTable'ın merge metodu var, aynı kolonlara sahip başka bir datatable geldiğinde birleştirebiliyorsunuz. 

            private const string connectionString = "Trusted_Connection=True; Persist Security Info=True;Initial Catalog=sample; Data Source=.;Pooling=true;";
            private void button1_Click(object sender, EventArgs e)
            {
                using (var scon = new SqlConnection(connectionString))
                {
                    using (var scom = scon.CreateCommand())
                    {
    
                        scom.CommandType = CommandType.Text;
                        scom.CommandText = "select * from [User] where Barkod=@Barkod;";
                        int barkod = 1;
                        scom.Parameters.Add("@Barkod", SqlDbType.Int).Value = barkod;
    
                        scon.Open();
                        DataTable dt = new DataTable();
                        new SqlDataAdapter(scom).Fill(dt);
    
                        if (dataGridView1.DataSource is null)
                        {
                            dataGridView1.DataSource = dt;
                        }
                        else
                        {
                            (dataGridView1.DataSource as DataTable).Merge(dt);
                        }
                    }
                }
            }

    Yaptığım şey, daha önce source ataması yapılmadıysa doğrudan source olarak göstermek, source varsa merge etmek. 


    Not: Db bağlantılarını using içerisinde yapın ve + ile query oluşturmayın. Bunun yerine parametre olarak ekleyin.  
    Not 2: sorguyu kendinize göre düzenlemeniz gerekiyor. 

    Not 3: Yusuf Bey bu soru Sql Server Forumuna atılmayacaktır...


    Altan Özdemir

    26 Eylül 2022 Pazartesi 14:03

  • Not 3: Yusuf Bey bu soru Sql Server Forumuna atılmayacaktır...


    Altan Özdemir

    SQL server ile ilgisi olmayan bir soruyu SQL server forumuna tasiyan adamdan moderator olur mu ya. Onu moderator yapan, o kadarini da bilmiyor demek ki :)


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    26 Eylül 2022 Pazartesi 15:25
  • Konuya , kime göre neye göre sql diyerek yaklaşıyorsa olabilir :)

    Altan Özdemir

    27 Eylül 2022 Salı 08:37