Visual Studio C# Dersleri – C# SqlServer VeriTabanı Kayıtlar Arasında Gezinti

1-C# SqlServer Veri Tabanı Bağlantısı
2-C# SqlServer Veri Tabanı Kayıt Ekleme
3-C# SqlServer Veri Tabanı Kayıtlar Arasında Gezinti
4-C# SqlServer Veri Tabanı Kayıt Silme
5-C# SqlServer Veri Tabanı Kayıt Güncelleme
6-C# SqlServer Veri Tabanı Kayıt Arama

C# derslerimize C# SqlServer VeriTabanı işlemleri ile devam ediyoruz önceki yazılarımızda C# Sqlserver Bağlantısı, C# Sqlserver kayıt ekleme işlemlerinden bahsetmiştik şimdi sıra geldi bu kayıtlar arasında gezinti yapmaya,
form üzerinde bulunan Önceki, Sonraki, İlk ve Son kayıt Butonları için gerekli olan kodlarımızı açıklamaya başlayalım, ilk olarak kayıtlar arasında gezinti yapabilmek için Gezgin isimli bir metot tanımlıyoruz.

private void Gezgin()
{
DataRow kayit = ds.Tables["kayit"].Rows[sira];
textBox1.Text = kayit.ItemArray.GetValue(1).ToString();
textBox2.Text = kayit.ItemArray.GetValue(2).ToString();
textBox3.Text = kayit.ItemArray.GetValue(3).ToString();
textBox4.Text = kayit.ItemArray.GetValue(4).ToString();
richTextBox1.Text = kayit.ItemArray.GetValue(5).ToString();
}

Bu fonksiyon çalıştığı anda sira değişkeninin değeri kaç ise ilgili sıradaki kayıtı getiriyor, tabi bu kodların düzgün çalışabilmesi için form load olayının hemen üstünde aşağıdaki tanımlamaların olması gerekir.

SqlConnection baglanti = new SqlConnection("Data Source=localhost\SQLEXPRESS; Initial Catalog=ogrencitakip; Integrated Security=true");
DataSet ds = new DataSet();
int sira = 0;
int toplamkayit;

şimdi en kolay olan ilk ve son kayıt butonlarını yazalım ilk kayıt 0.sıra son kayıtta toplamkayit değerinin 1 eksiği kadardır

//İlk Kayıt
private void button3_Click(object sender, EventArgs e)
{
sira = 0;
Gezgin();
}
//Son Kayıt
private void button4_Click(object sender, EventArgs e)
{          
sira = toplamkayit - 1;
Gezgin();
}

Şimdi Sıra geldi önceki ve sonraki kayıtlara sonraki için sira numarasını bir arttırıp son kayıta gelindiyse zaten son kayıt mesajını verecek, önceki kayıtlarda da sira numarasını bir azaltıp ilk kayıta gelindiyse zaten ilk kayıttasınız diyecek.

//Sonraki Kayıt
private void button2_Click(object sender, EventArgs e)
{          
if (sira != toplamkayit - 1)
{
sira++;
Gezgin();
}
else
{
MessageBox.Show("Son Kayıttasınız");
}
}
//Önceki Kayıt
private void button1_Click(object sender, EventArgs e)
{
if (sira>0)
{
sira--;
Gezgin();
}
else
{
MessageBox.Show("İlk Kayıttasınız");
}
}

Bu kayıtlar sayesinde kayıtlarımız arasında gezinme işlemini tamamlamış olduk Sonraki derslerimizde kayıt silme, güncelleme ve bulma işlemlerinden bahsedeceğiz.
sqlserverkayit

  • Oğuz Kaan

    Merhaba. toplamkayit değişkeninde bi sıkıntı var o kod parçasını tam olarak nereye yazmalıyız belirtirmisiniz 🙂

    • BilisimOgretmeni

      konuda yazmışım ama page_load olayından önce SqlConnection baglanti = new SqlConnection(“Data Source=localhostSQLEXPRESS; Initial Catalog=ogrencitakip; Integrated Security=true”);
      DataSet ds = new DataSet();
      int sira = 0;
      int toplamkayit;
      yazabilirsiniz…

  • astro

    merhaba

    Öncelikle yukarıdaki örnek için teşekkür ederim.

    Yukarıdaki kodları denedim. ancak şu şekilde bir hata ile karşılaştım. Yardımcı olabilirmisiniz

    DataRow kayit = ds.Tables[“kayitlar”].Rows[sira];

    satırına geldiğinde

    “An unhandled exception of type ‘System.NullReferenceException’ occurred in TelefonDefteri.exe

    Additional information: Nesne başvurusu bir nesnenin örneğine ayarlanmadı.”

    hatasını veriyor.Nedeni ne olabilir acaba?
    Teşekkürler…

    • BilisimOgretmeni

      veritabanında kayıt olmayabilir veya gezinti işleminde ilgili kayıt bulunamadığı için hata veriyor büyük ihtimal kodları tekrar kontrol edebilirsiniz..

      • matmüh

        Merhaba,
        Bana da aynı yerde aynı hatayı veriyor. Veritabanını da kontrol ettim, içinde eklediğim kayıtlar bulunmakta. Veritabanında bir sorun yok gibi gözüküyor. Yazdıklarınızın aynısını yazdım ve tekrar tekrar kontrol ettim. Ne yaparsam yapayım aynı hatayı almaktayım. Nasıl düzelteceğim bu durumu?
        Teşekkür ederim.

X

Pin It on Pinterest

X