Forum

c# ÖNCEKİ - SO...
 
Bildirimler
Hepsini Temizle

c# ÖNCEKİ - SONRAKİ KAYIT

10 Yazılar
4 Üyeler
0 Reactions
3,096 Görüntüleme
(@OMERCAGLAN)
Gönderiler: 7
Active Member
Konu başlatıcı
 

İyi çalışmalar. Büromuzda kullandığımız geniş çaplı bi program için takıldığım bir yer oldu. Belki çözümü basit ama bi kaç gündür uğraşıyorum. Veritabanı olarak sql server 2012 kullanıyorum. Programlama dili c#. Projem geniş çaplı olduğu için kayıt sayısı fazla. Açtığım bir kayıtta önceki kayıt ve sonraki kayıt kısmını yapamadım. Normalde dataset ile verileri çekerek datasetteki kayıt sayısından önceki ve sonraki kayda gidebiliyorum. Bunda sıkıntı yok. Fakat Ac metodu ile çağırdığım herhangi bir kayıttan önceki veya sonraki kaydı ekrana getiremiyorum. Normal satır sayısını artırarak veya eksilterek yaptığımda kaydın en başından veya en sonundan itibaren göstermeye başlıyor. Benim istediğim açtığım kayıttan itibaren önceki veya sonraki kaydı bulmak. Açtığım kaydın datasetteki kayıt numarasını alamadım. Alabilirsem önceki sonraki kısmını yapacağım. Bu konuda yardımcı olabilirseniz sevinirim.

 
Gönderildi : 14/03/2016 14:48

(@enginkulac)
Gönderiler: 118
Estimable Member
 

Merhaba,

Kaydetmek için kullandığınız sql sorgusunu yazabilir misiniz?

 
Gönderildi : 14/03/2016 20:08

(@OMERCAGLAN)
Gönderiler: 7
Active Member
Konu başlatıcı
 

Kaydetmek için kullandığım sorgu store procedure ile. string sql="sp_kaydet "+dosyano+", "+adisoyadi+","+id; şeklinde bi sorgu.

 
Gönderildi : 16/03/2016 17:12

(@enginkulac)
Gönderiler: 118
Estimable Member
 

Procedure içerisindeki insert sorgusunun sonuna select scope_identity() ekleyerek kaydedilen index değerini alabilirsiniz.

 
Gönderildi : 17/03/2016 11:15

(@birolaydugan)
Gönderiler: 867
Prominent Member
 

Ekrandaki kaydın select top 1 ve order by ile referansını alıp butonada atayabilirsin .

 
Gönderildi : 17/03/2016 13:42

(@eravse)
Gönderiler: 1753
Üye
 

Merhaba SQL server üzerinden prosedür ile sayfalama için http://social.technet.microsoft.com/wiki/contents/articles/23811.paging-a-query-with-sql-server.aspx adresindeki güzel yazıyı incelemenizi tavsiye ederim size çok yardımcı olacaktır.

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 21/03/2016 02:35

(@OMERCAGLAN)
Gönderiler: 7
Active Member
Konu başlatıcı
 

Procedure içerisindeki insert sorgusunun sonuna select scope_identity() ekleyerek kaydedilen index değerini alabilirsiniz.

 

O şekilde değer aldığım zaman, kayıtlarda sürekli güncelleme, silme ve ekleme yapıldığı için id alanları tutarlı değil. değeri butonla 1 artırıp veya 1 eksilttiğimde bi önceki değere ait kayıt olmadığı zaman program hataya düşüyor. Datasete veri çektiğim anda, datasetin kendi id sini alabilirsem sorunu çözebileceğimi düşünüyorum. Ama datasetin kendi id alanını alamadım. Cevabınız için teşekkür ederim.

 
Gönderildi : 22/03/2016 15:02

(@OMERCAGLAN)
Gönderiler: 7
Active Member
Konu başlatıcı
 

Ekrandaki kaydın select top 1 ve order by ile referansını alıp butonada atayabilirsin .

 

Ekrandaki kaydın referansı derken tam anlayamadım. Gelen kaydın referans olarak veritabanındaki id sini alabiliyorum. Ama kaydın id si işimi görmüyor. Çünkü bi önceki kayıt silinmiş oluyor ve id yi 1 eksilttiğim zaman hata veriyor. Veya bi sonraki kayıt silinmiş oluyor, id yi 1 artırdığım zaman program hataya düşüyor. Cevabınız için teşekkür ederim.

 
Gönderildi : 22/03/2016 15:04

(@OMERCAGLAN)
Gönderiler: 7
Active Member
Konu başlatıcı
 

Şöyle birşey de yapabilirim. Veritabanından dataset veya datatable ile verileri listelediği anda dinamik bir id alanı oluşturabilirsem, sıralama atlamadan bu oluşturulan id alanından istediğim kaydın dinamik id sine göre önceki kayıt veya sonraki kayıt butonlarına kodları oluşturabilirim. Ama dinamik olarak datasette veya datatablede nasıl bir id alanı oluşturacağım bunu bilmiyorum tabi. İşin açıkçası mantıksal olarak çözebiliyorum ama kodlama kısmında bu işi çözemedim.

 
Gönderildi : 22/03/2016 15:08

(@birolaydugan)
Gönderiler: 867
Prominent Member
 

Scope_identity yada IDENT_CURRENT(tablename) isini görür 

 
Gönderildi : 22/03/2016 22:30

Paylaş: