Merhabalar,bir projemde repeater ile sql üzerinden veri çekmekte sorun yaşıyorum.Sorunumu google da 5 gündür araştırıyorum fakat çözüm bulamadım.Bunun sebebi hata almıyor olmamdan olsa gerek.Herneyse, sorunum şu;
-21 kayıt bulunan tablodan id ye göre repeater ile veri çektiğimde ilk veriyi atlıyor kalan 20 veriyi çekiyor.
-Verileri sondan başa doğru çektiğimde bukez sondaki veriyi atlıyor kalan 20 veriyi çekiyor.
- Verileri sonran çektiğim durumda;
-Yeni veri eklediğimde,repeater ile çektiğim sayfada daha önce görünmeyen veri görünüyor.
- Tekrar veri eklediğimde yani toplam 23 kayıt olduğunda,azönce görünmeyen veri görünüyor yeni eklediğim görünmüyor.Yani hep bir önceki kayıt görünüyor.
-Yani kısaca repeaterim 1 veriyi herzaman eksik çekiyor.Baştan sonra listelersem ilk veriyi,sondan başa listelersem son veriyi çekmiyor.
Herhangi bir hata mesajı ile karşılaşamadığımdan dolayı hatayı tespit edebilmek için birkaç yöntem denedim;
-Sayfaya 2 adet listbox 2 adet label ve 2 adet button ekledim.
2şer olmasının sebebi,belki tablomda hata vardır diyerek 2 tablodan deneme yapacağım
1. tabloya ahmet tablosundaki tüm verileri yazdırdım ve label1 e de bu listbox'un countunu yazdırdım.
2. tabloya aynı şekilde bukez mehmet tablosundan çektim
Buttonlara tıkladığımda herhangi bir sorun olmadı ilk kayıttan sona kadar çekti eksiksiz.
ID ye göre çekerken kodlama hatası yapmadığımdan emin olmak için yine bu listboxlara id ye göre çektim ve yine eksiksiz çekti.
Bu testten anladığım kadarıyla kodlamamda değil repeaterimde bir problemim veya bu kontrole ilişkin bilgi eksikliğim var.asp.net de tecrübesiz biri olduğumdan dolayı buraya kadar tespit edebildim.Yardımcı olursanız sevinirim,teşekkür ederim
source kodları;
<asp:Repeater ID="Repeater4" runat="server">
<ItemTemplate>
<img src='<%#Eval("Resim") %>' style="width:100%">
</ItemTemplate>
</asp:Repeater>
Code behind;
Try
Dim conn As New SqlConnection
conn.ConnectionString = ConfigurationManager.ConnectionStrings("degisik"). ConnectionString.ToString
conn.Open()
Dim cmd As New SqlCommand("select * from test where ResimKontrol='" & "1" & "' ORDER BY ID DESC", conn)
Dim oku5 As SqlDataReader = cmd.ExecuteReader
oku5.Read()
Repeater4.DataSource = oku5
Repeater4.DataBind()
oku5.Close()
conn.Close()
cmd.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Burada resimkontrol= resim mi değil mi,1 yazılanlar resim.Dolayısıyla direk 1 olarak arattım.
resimkontrol e göre değilde normal olarak sorguladığımda da repeater birtane eksik çıkarıyor.(Dim cmd As New SqlCommand("select * from test", conn)