Forum
Merhaba;
C# winform uygulamasında , form üzerine mevcut verileri çekiyorum. Form üzerinde önceki kayıt ve sonraki kayıt butonu koydum. MSSQL veri tabanı kullanıyorum. Amacım açılan kaydın ID sine göre bir önceki veya bir sonraki ID'yi bulmak. Bunu nasıl bir sorguyla yapabilirim. Yardımlarınız için şimdiden teşekkürler.
veriyi neyle çekiyorsunuz?
DataRow kullanıyorum
Bundan sonraki çalışmalarınızda Entity Framework yapısını tavsiye ederim.
Ancak şu anki sorunu çözmek için şöyle bir yol izleyin.
Veriyi DataTable'ye doldurun.
Örnek:
DataTable dt;//datatable dolu varsayın
int index=0;
private void IleriButonu_Click(object sender, EventArgs e)
{
if(i==dt.Rows.Count-1){ MessageBox.Show("Son Kayıt"); return;}
index++;
var item=dt.Rows[index].ItemArray;
TextleriDoldur(item)
}
private void GeriButonu_Click(object sender, EventArgs e)
{
if(i==0){ MessageBox.Show("İlk Kayıt"); return;}
index--;
var item=dt.Rows[index].ItemArray;
TextleriDoldur(item);
}
private void TextleriDoldur(object[] item)
{
txtAdSoyad.Text=item[0];
txtGorevi.Text=item[1];
txtBilmemnesi.Text=[2];
}
dt.Rows.Count-1 diyorum çünkü 10 row varsa index 0'dan 9'a kadardır.
DipNot: ileri butonuna her bastığımda veritabanına dönüp 1 satır kayıt alıp geri gelmek performansı olumsuz etkiler. bunun için veriyi datatable içinde cache'leyin. ekran açıldığı zaman tüm veriyi istemci bilgisayar üzerine alsın, belleğindeki veriler içinde ileri geri giderek performansı artırın. yaptığınız programı 100 bilgisayarın aynı anda aynı ağda kullandığını düşünün, her tuşa basıldığında 20-30 pc'nin birden sql'e sorgu atması doğru bir yaklaşım değil.
Hocam çok teşekkürler