ANASAYFA | BLOG | SORU CEVAP | REFERANSLARIM | DOWNLOAD | HAKKIMDA | İLETİŞİM | ARAMA
~~~SORU~CEVAP~~~
Gönderen: ~~FARUK UNAL~~
2.4.2014 0
Aşğıda Senin için bir örnek hazırladım, tahminimce işini görecektir. For döngüsü ile satırları tek tek kontrol ederek istediğin koşula uyan satırda istediğin işlemi yapabilirsin. Aşağıdaki kırmızı renkli kolon adını kendine göre uyarlamalısın, aynı şekilde Datagridview adını da kendine göre uyarlayarak aşağıdaki gibi bir yapıyı kullanabilirsin
 
        for (int i = 0; i < Datagridview1.RowCount; i++)
            {
                //Burda döngü içerisinde sırasıyla kontrollerini yaptırıp
                // gerekli gördüğünde de
                // silme işlemini yapacaksın
                if (Datagridview1.Rows[i].Cells["secilimi"].Value.ToString() == "1") 
                {//her satırın secimili kolonunu kontrol ettirip, 1 ise
                    // Burdaki işlemleri yapar
                }
                else
                {
                     //eğer 1 değilse burayı yapar
                }
 
                // Bu şekilde bütün satırları 
                // tek tek kontrol ettirerek 
                // istediğin işlemi yaptırabilirsin
            }
Gönderen: Hasan
3.4.2014 0

Aşağıdaki kodla sayfa yüklendiğinde datagridviewe CheckBox eklemiştim.

DataGridViewCheckBoxColumn sec = new DataGridViewCheckBoxColumn();

sec.HeaderText = "SEÇ";

sec.FalseValue = "0";

sec.TrueValue = "1";

dataGridView1.Columns.Insert(0,sec);

 

Butona tıkladığmda seçili kitapları silmek için "delete komutuna" şart mı belirtmem lazım?? Yada datagridview de oluşturduğum CheckBoxlar Null mu görüyor.

“Object reference not set to an instance of an object” hatası alıyorum.

 

private void btnKitapSil_Click(object sender, EventArgs e)

{

for (int i = 0; i < dataGridView1.RowCount; i++)

{

if (dataGridView1.Rows[i].Cells["KitapId"].Value.ToString() == "1")

{

OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=data.accdb");

baglanti.Open();

OleDbCommand komut = new OleDbCommand("Delete * from Kitaplar", baglanti);

komut.ExecuteNonQuery();

baglanti.Close();

}

else

{}

}

}

 

 

Gönderen: Hasan
3.4.2014 0

DataGridViewCheckBoxColumn sec = new DataGridViewCheckBoxColumn();

sec.HeaderText = "SEÇ";

sec.FalseValue = "0";

sec.TrueValue = "1";

dataGridView1.Columns.Insert(0,sec);

 

 

if (dataGridView1.Rows[i].Cells["sec"].Value.ToString() == "1") işaretli kolon ismini verdiğimde ise "sec" adlı kolon bulunamadı hatası veriyor.

Silme işlemi yaparken seçili satırı silmesi için where ifadesinden sonra nasıl bir şart belirtmem lazım?

 

Gönderen: ~~FARUK UNAL~~
4.4.2014 0

dataGridView1.CurrentRow.Cells["sec"].Value.ToString()

Yerine

dataGridView1.CurrentRow.Cells[0].Value.ToString()

şeklinde kullanırsan sorun çözülür, Bu şekilde 1 yada 0 değeri döner, ona göre karşılaştırma yaparak programında kullanabilirsin

Gönderen: Hasan
5.4.2014 0

Merhaba, seçili olan satırı veritabanından silmek için where den ne yazmam gerekiyor?

Seçili satırın KitapId'sine ulaşmam mı gerek? buraya takıldım hocam.

for(int i = 0; i < dataGridView1.RowCount; i++)

{

if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "1")

{

OleDbCommand komut = new OleDbCommand("Delete * from Kitaplar where ???", baglanti);

komut.ExecuteNonQuery();

}

else

{

}

}

Gönderen: ~~FARUK UNAL~~
6.4.2014 0

Tam olarak tablolarını nasıl oluşturduğunu bilmiyorum ama genelde her tablonun bir ID si olur ve bu ile ile silme işlemini yapabilirsin, where dedikten sonra ID kolonundaki id ile eşleştirme yapman gerekir
 

"...where ID="dataGridView1.Rows[i].Cells["ID"].Value.ToString() 

gibi bir şey kullanabilirsin
Mavi ile belirttiğim SQL deki tabloda ID kolonunun adı olmalı, Kırmızı ile belirttiğim ise datagrid de bu id kolonuna karşılık gelen kolon adı olmalı

Gönderen: Hasan
8.4.2014 0

dataGridView1.Rows[i].Cells[0].Value.ToString() == "1"

Hocam çok saol kod için, seçili olanları siliyor. Fakat "YUKARIDAKİ" kodda (Object reference not set to an instance of an object.) "NullReferenceException was unhandled" hatası alıyorum. Neden olabilir??

 

 

private void btnKitapSil_Click(object sender, EventArgs e)

{

for (int i = 0; i < dataGridView1.RowCount; i++)

{

if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "1")

{

OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=data.accdb");

baglanti.Open();

OleDbCommand komut = new OleDbCommand("Delete * from Kitaplar where DBNo='" + dataGridView1.Rows[i].Cells["DBNo"].Value.ToString() + "'", baglanti);

komut.ExecuteNonQuery();

baglanti.Close();

}

else

{

}

}

KitapCek();

}

Gönderen: ~~FARUK UNAL~~
10.4.2014

Rahatsızlığım nedeniyle dün cevap veremedim kardeş, kod düzgün görünüyor , aldığın hata NULL olan bir yere erişmeye çalıştığını gösteriyor, kodu incelediğimde mantıken bir hata görünmüyor, istersen mail adresimden ulaş, ikimizinde uygun olduğu zamanda teamveawer la fln bilg.ına bağlanıp sorunu inceleyim, mail adreslerin iletişim bölümünde war, ordan uygun olduğun zamanı iletirsen ona göre haberleşip yardımcı olurum


Ad Soyad :
E-mail :
Cevap :
DoÄŸrulama Kodu