none
c# datagridview listeleme RRS feed

  • Soru

  • datagridviewa arama yapıp kayıt listeliyorum daha sonra temizleme butonu var ben datagridviewın kolon başlıklarını sağ üst köşesindeki ok a tıklayar add kolumn diyerek ekleme yaptım. 

    temizleme butonuna basınca datagridviewa listelenen kayıtları silmesini istiyorum yani göstermesin.

    dataGridView1.dataSource = null kodunu yazınca kolon başlıklarını da siliyo tekrar programı kapatmadan arama tuşuna basınca kolon başlıkları veritabanında ki gibi küçük ve düzensiz şekilde geliyor

    13 Ağustos 2019 Salı 19:55

Yanıtlar

  • Cevap alamadiginiz zamanlarda, "cevabini bilen yok mu" diye sormak yerine, sorum neden hiç anlasilmadi diye dusunun. 

    Ne sordugunuz belli degil, ortada ornek kod vs yok. Ornegin: "arama yapıp kayıt listeliyorum" nasıl yapıyorsunuz, nereye nasıl listeliyorsunuz? Kodlari nerede? "Kucuk ve düzensiz" ne demek? Duzenli getirseniz düzenli gelir, her seferinde elle kolonları eklemeye neden gerek olsun ki?

    Kucuk bir tablo ile ornek:

    void Main()
    {
    	
    	string query = @"Select CustomerId as [Duzenli Kolon Adi], CompanyName as [Sirket Adi], Country as [Ulke ad]
    	    from Customers
    		where country like @ulke";
    	
    	var adapter = new SqlDataAdapter(query, @"server=.\SQLExpress;Trusted_Connection=yes;database=Northwind");
    	adapter.SelectCommand.Parameters.Add("@ulke", SqlDbType.VarChar);
    	
    	Form f = new Form {Height=600, Width=600};
    	TextBox txtUlke = new TextBox { Top = 10, Left = 10, Width = 100 };
    	DataGridView dgv = new DataGridView { Top = 50, Height = 500, Width = 580, 
    	Anchor = AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right | AnchorStyles.Top};
    	f.Controls.AddRange(new Control[] { txtUlke, dgv });
    	txtUlke.TextChanged += (sender, e) =>
    	{
    		DataTable tbl = new DataTable();
    		adapter.SelectCommand.Parameters["@ulke"].Value = $"%{txtUlke.Text.Trim()}%";
    		adapter.Fill(tbl);
    		dgv.DataSource=tbl;
    	};
    	
    	f.Show();
    }



    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.

    • Yanıt Olarak İşaretleyen batuhan2335 15 Ağustos 2019 Perşembe 14:29
    14 Ağustos 2019 Çarşamba 23:37
    Yanıtlayıcı

Tüm Yanıtlar

  • Cevabını bilen yok mu acaba burda tıkndım kldım
    14 Ağustos 2019 Çarşamba 18:12
  • Cevap alamadiginiz zamanlarda, "cevabini bilen yok mu" diye sormak yerine, sorum neden hiç anlasilmadi diye dusunun. 

    Ne sordugunuz belli degil, ortada ornek kod vs yok. Ornegin: "arama yapıp kayıt listeliyorum" nasıl yapıyorsunuz, nereye nasıl listeliyorsunuz? Kodlari nerede? "Kucuk ve düzensiz" ne demek? Duzenli getirseniz düzenli gelir, her seferinde elle kolonları eklemeye neden gerek olsun ki?

    Kucuk bir tablo ile ornek:

    void Main()
    {
    	
    	string query = @"Select CustomerId as [Duzenli Kolon Adi], CompanyName as [Sirket Adi], Country as [Ulke ad]
    	    from Customers
    		where country like @ulke";
    	
    	var adapter = new SqlDataAdapter(query, @"server=.\SQLExpress;Trusted_Connection=yes;database=Northwind");
    	adapter.SelectCommand.Parameters.Add("@ulke", SqlDbType.VarChar);
    	
    	Form f = new Form {Height=600, Width=600};
    	TextBox txtUlke = new TextBox { Top = 10, Left = 10, Width = 100 };
    	DataGridView dgv = new DataGridView { Top = 50, Height = 500, Width = 580, 
    	Anchor = AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right | AnchorStyles.Top};
    	f.Controls.AddRange(new Control[] { txtUlke, dgv });
    	txtUlke.TextChanged += (sender, e) =>
    	{
    		DataTable tbl = new DataTable();
    		adapter.SelectCommand.Parameters["@ulke"].Value = $"%{txtUlke.Text.Trim()}%";
    		adapter.Fill(tbl);
    		dgv.DataSource=tbl;
    	};
    	
    	f.Show();
    }



    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.

    • Yanıt Olarak İşaretleyen batuhan2335 15 Ağustos 2019 Perşembe 14:29
    14 Ağustos 2019 Çarşamba 23:37
    Yanıtlayıcı
  •             SqlDataAdapter da = new SqlDataAdapter("SElect *from tblKisiler where ad like '" + textBox5.Text + "%'", baglanti);
                DataSet ds = new DataSet();
                baglanti.Open();
                da.Fill(ds, "tblKisiler");
                dataGridView1.DataSource = ds.Tables["tblKisiler"];
                baglanti.Close();

    Bu kod ile arama yapıyorum arama butonu var ve arama butonunun yanında tabloyu temizle butonu var. Ben bu butona bastığım zaman datagridviewdaki kayıtları silmesini istiyorum ben datasource= null yapınca başlıklarda siliniyo başlıkları da columns özelliğinden add tuşuna basarak ekledim

    15 Ağustos 2019 Perşembe 06:03
  • Iyi de, benim verdigim kodun nesini begenmedin? Senin dediğini yapmıyor mu (tek farki Buton click ile degil, textbox'taki yazi her değiştiğinde yapıyor).

    Senin kodunun neden ASLA ve ASLA kullanılmaması gerektiğini mi soruyorsun? Eger sorduğun oysa, cevabi gene yulkaridaki kodda, ASLA ve ASLA senin yazdigin gibi :

    "SELECT ... FROM ... " + textBox5.Text ...

    gibi SQL cümlesi yazma, mutlaka parametre kullan. Nedenlerini anlatmaktan ben de yoruldum, sadece guven :)

      Not: Benim verdigim kodu dogrudan LinqPad'de calistirabilirsin. 


    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.



    15 Ağustos 2019 Perşembe 09:56
    Yanıtlayıcı