C# DataGridView kayıt nasıl silinir?

erm1sh

Megapat
Katılım
8 Eylül 2016
Mesajlar
123
Çözümler
2
Yer
Bilecik,Bozüyük
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
İyi sosyaller.

Bir sipariş takip programı hazırlıyorum ve her kayıt eklediğimde, sildiğimde veya güncellediğimde "griddoldur" isimli metodumdan DataGridView'ı tekrar çağırmayı hedefliyorum. Fakat Datasoruce'u da temizlesem, "Refresh" de çeksem hiçbir şekilde temizleyemiyorum. Kodları aşağıya bırakıyorum. Bana yardımcı olabilirseniz çok sevinirim.

gridDoldur() metodum;
C#:
        void gridDoldur()
        {
            if (baglanti.State == ConnectionState.Closed)
            {
                baglanti.Open();
            }
            bunifuDataFirma.DataSource = null;
            bunifuDataFirma.Rows.Clear();
            da = new OleDbDataAdapter("select firmaKod as [Firma Kodu], firmaAdi as [Firma Adı], firmaAdres as [Adres], firmaTel as [Telefon] from firma", baglanti);

            da.Fill(ds, "firma");
            bunifuDataFirma.DataSource = ds.Tables["firma"];
            baglanti.Close();
        }

Kayıt Ekleme Tuşum;
Kod:
if (baglanti.State == ConnectionState.Closed)
            {
                baglanti.Open();
            }
            try
            {
                if (bunifuMaterialkod.Text =="" || bunifuMaterialfirmaAdi.Text == "" || bunifuMaterialAdres.Text == "" || bunifuMaterialTel.Text == "")
                {
                    MessageBox.Show("L*tfen boş alan bırakmayınız!","Uyarı",MessageBoxButtons.OK,MessageBoxIcon.Error);
                }
                else
                {
                    OleDbCommand komut = new OleDbCommand("insert into firma(firmaKod, firmaAdi, firmaAdres, firmaTel) values (@p1, @p2, @p3, @p4)",baglanti);
                    komut.Parameters.AddWithValue("p1", bunifuMaterialkod.Text);
                    komut.Parameters.AddWithValue("p2", bunifuMaterialfirmaAdi.Text);
                    komut.Parameters.AddWithValue("p3", bunifuMaterialAdres.Text);
                    komut.Parameters.AddWithValue("p4", bunifuMaterialTel.Text);
                    komut.ExecuteNonQuery();
                    MessageBox.Show("Firma başarıyla kaydedildi!", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    baglanti.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            Temizle();
            gridDoldur();
 
İyi sosyaller.

Bir sipariş takip programı hazırlıyorum ve her kayıt eklediğimde, sildiğimde veya güncellediğimde "griddoldur" isimli metodumdan DataGridView'ı tekrar çağırmayı hedefliyorum. Fakat Datasoruce'u da temizlesem, "Refresh" de çeksem hiçbir şekilde temizleyemiyorum. Kodları aşağıya bırakıyorum. Bana yardımcı olabilirseniz çok sevinirim.

gridDoldur() metodum;
C#:
        void gridDoldur()
        {
            if (baglanti.State == ConnectionState.Closed)
            {
                baglanti.Open();
            }
            bunifuDataFirma.DataSource = null;
            bunifuDataFirma.Rows.Clear();
            da = new OleDbDataAdapter("select firmaKod as [Firma Kodu], firmaAdi as [Firma Adı], firmaAdres as [Adres], firmaTel as [Telefon] from firma", baglanti);

            da.Fill(ds, "firma");
            bunifuDataFirma.DataSource = ds.Tables["firma"];
            baglanti.Close();
        }

Kayıt Ekleme Tuşum;
Kod:
if (baglanti.State == ConnectionState.Closed)
            {
                baglanti.Open();
            }
            try
            {
                if (bunifuMaterialkod.Text =="" || bunifuMaterialfirmaAdi.Text == "" || bunifuMaterialAdres.Text == "" || bunifuMaterialTel.Text == "")
                {
                    MessageBox.Show("L*tfen boş alan bırakmayınız!","Uyarı",MessageBoxButtons.OK,MessageBoxIcon.Error);
                }
                else
                {
                    OleDbCommand komut = new OleDbCommand("insert into firma(firmaKod, firmaAdi, firmaAdres, firmaTel) values (@p1, @p2, @p3, @p4)",baglanti);
                    komut.Parameters.AddWithValue("p1", bunifuMaterialkod.Text);
                    komut.Parameters.AddWithValue("p2", bunifuMaterialfirmaAdi.Text);
                    komut.Parameters.AddWithValue("p3", bunifuMaterialAdres.Text);
                    komut.Parameters.AddWithValue("p4", bunifuMaterialTel.Text);
                    komut.ExecuteNonQuery();
                    MessageBox.Show("Firma başarıyla kaydedildi!", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    baglanti.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            Temizle();
            gridDoldur();


Bunun yerine aşağıdaki gibi bir yöntem dener misiniz?

C#:
bunifuDataFirma.DataSource = new DataTable();
 
Bunun yerine aşağıdaki gibi bir yöntem dener misiniz?

C#:
bunifuDataFirma.DataSource = new DataTable();
Hocam cevabınız için minnettarım fakat kendim çözdüm.

Dataset'i metod başında temizleyerek her çağırıldığında temizlemiş, sıfır şekilde gelmesini sağlıyorum. Metodumu aşağıya bırakacağım ki sonradan görüntülenme durumunda diğer geliştiriciler için çözüm olsun.

C#:
OleDbDataAdapter da;
DataSet ds = new DataSet();
void gridDoldur()
        {
            if (baglanti.State == ConnectionState.Closed)
            {
                baglanti.Open();
            }
            ds.Clear(); //temizlemeyi sağlayan satır, en başta olması önem arz ediyor.
            da = new OleDbDataAdapter("select firmaKod as [Firma Kodu], firmaAdi as [Firma Adı], firmaAdres as [Adres], firmaTel as [Telefon] from firma", baglanti);

            da.Fill(ds, "firma");
            bunifuDataFirma.DataSource = ds.Tables["firma"];
            baglanti.Close();
        }
 

Technopat Haberler

Geri
Yukarı