BDS 2006'yla gelen C#'ı denemeye başladım şu sıralar. Basit bir veritabanı uygulaması yapmaya çalışıyorum Ado.Net'i öğrenmek açısından. Bir access tablosunu veritabanı olarak kullanıyorum. Ekleme,güncelleme,silme gibi standart işlemleri gerçekleştirmeye çalışıyorum. Fakat şöyle bir hatayla karşılaşıyorum;
Silme işlemindeki kodlarım şu şekilde;deleted row information cannot be accessed through the row
Kod: Tümünü seç
if(MessageBox.Show("Kaydı kalıcı olarak silmek istediğinize emin misiniz?","Bilgi",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2)==DialogResult.Yes)
{
dsKisi.Tables["kisi"].Rows[BindingContext[dsKisi,"kisi"].Position].Delete();
OleDbCommandBuilder komutolusturucu=new OleDbCommandBuilder(adaptor);
adaptor.ContinueUpdateOnError = true;
adaptor.Update(dsKisi,"kisi");
MessageBox.Show("Kayıt silindi","Bilgi",MessageBoxButtons.OK,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1);
}
Araştırmalarıma göre ADO.NET'te DataTable'dan Delete() metoduyla silinen satırların aslında veritabanından silinmediği sadece bu satırın silineceğine dair bir bayrakla işaretlendiği, kalıcı olarak silmek için AcceptChanges metodunun işletilmesi gerektiği belirtiliyor. Eğer AcceptChanges metodu işletilmezse ve kayıtlar arasında dolaşılırken bu silinen kayda ait pozisyona gelindiğinde "deleted row information cannot be accessed through the row" hatasını vereceği söyleniyor. Aynen de bu şekilde oluyor. Fakat ben bu olayı çalıştırdığım halde bir sonuç alamadım.
Bu konuda bilgili arkadaşların yardımlarını bekliyorum.