row_number() komutu ms sql 2000 de yok sanırım. hosttaki veritabanımda hata veriyor bu satır ?
row_number() komutu 2005 için olabilir ama tam olarak bilmiyorum. Hemen araştırma yaparak bu sorunu çözmeyi umut ediyorum. Uyarı için teşekkür ederim.
Maalesef belirtmeliyim ki bu komut sql server 2005 ile gelmiş bir yenilik imiş. Oracle ile çok kullanılan ve çok karmaşık işlemleri kolaylaştıran bu yöntem ms sql 2005 ile desteklenmeye başlanmış. Maalesef sql 2000 desteklemiyor. Ancak bu konuda araştırmalarım sürecek. Sonuç alırsam buradan paylaşırım.
Merhaba. evet sayfalama yaptım. ama 2 sayfaya gectigimde veriler gorunmuyor bomboş sayfa. sadece ilk sayfa da veriler var. nerde hata yaptım anlamıyorum
Bu kodlarda bir hata yok. Çalışan kodlar. Eğer kodlarını gönderebilirsen yardımcı olabilirim.
Burada yazdığımız metodu çağırırken mysql`den farklı olarak parametre değerimiz şöyle olmalı:
datalarim((sayfa_numarasi-1)*sayfalama_adeti,sayfa_numarasi*sayfalama_adeti);
Gercekten güzel olmuş. yanlnız şunu yapamıyoruz. ornegin listeledigimiz datalardan 2. sayfaya geciyoruz 2 tıkladıgımda sayfanın 2. sayfa oldugunu vurgulamak icin sayfa numarasını baska renkte veya formatta gosterme sansımız yokmu? ornegin 7 makale 2. sayfada diyelim. 2. sayfayı tıklıyorum. ve suan 2. sayfada oldugumu gormek icin rakamı renkli gostermek istiyorum
Merhaba. Dediğini yapmak için kodlara çok ufak bir ekleme yapmak yeterli. Aslında bunları vermiyorum. Uğraşanlar kendisi bulsun diye. :) Ancak nasıl yapılacağını söyleyeyim. Bunu yapmak için sayfa numaralarını yazdırdığımız döngüde url`den aldığımız sayfa numarasını kontrol etmeliyiz. Döngüde bu değer ile eşleşen değer aktif sayfadır. Döngü içinde kontrol ederek bu değere istediğimiz şekli verebiliriz.
sayfa numaralarını yazdırdıgımız dongude urldeki degere bir class ile renk ataması yaptım. ama sonuc bütün degerler aynı renge büründü :) döngü içinde yapılması bütün değerlere aynı rengi atıyor sanırım. döngünün dışındamı yapılması gerek acaba.
az kaldı çözmek üzereyim. sen hep böyle yap kardeşim. ipucu ver biz uğraşalım :)
Merhaba,bu konu ile biraz alakasız olucak ama nette aradım asp.net c# sql de bulamadım.Şansımı böyle denemek istedim.Database de bulduğum kaydın bir değerini textbox a nasıl yazdırabilirim acaba?
Merhaba. Arama yapıp elde ettiğin verileri okuduktan sonra istediğini herhangi bir kontrole yükleyebilirsin. Mesela command neenesi ile okuyorsan datareader kullanmalısın. textbox.text = datareader["sutun_adi"].ToString(); gibi. Böyle bir kodlama işini görür.
Dediğin gibi sqlcommend ile okumaya çalıştım.Şöyle;
SqlConnection con = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand(sql,con);
SqlDataReader reader = cmd.ExecuteReader();
Şöyle bi hata veriyor neden olabilir?
ExecuteReader açık ve kullanılabilen bir bağlantı gerektirir. Bağlantının geçerli durumu: kapalı.
Merhaba. Hatanın nedeni bağlantıyı açmamanızdan. Bu işlemlerin yapısını incelersen daha iyi olur. İnternette örnekler bulabilirsin. Önce bağlantıyı açman daha sonra yapacaklarını yapıp bağlantıyı kapatman gerekiyor.
Mehmet , paylaşım güzel.
Benim takıldığım bir nokta var , örnek olarak onaylı üyeleri listeletmek istiyorum.
kaç adet onaylı kayıt olduğunu alıyorum örnek olarak paylaştığın string sorgu = "..."; nun içinde row olarak aldığı için onaylı olmayan üyeleride sayıyor ancak veri olarak göstermiyor.
Yani baslangic row 0 bitis 10 diyelim arada 2 tane onaysız varsa her ilk sayfada 8 veri gösteriyor .
string sorgu içinde where komutunu nasıl kullanabiliriz ?
Dediğin sorunu çözmek için sorguda yer alan iki koşulun ardından kendi koşulunu koymalısın. İstediğin üçüncü koşulu sorguda yer alan where komutu ardından and ile belirtirsen sorunun çözüleceğini düşünüyorum.
and where uye_onay=1 dediğim zaman onaylıları getiriyo evet , ancak şöyle bir sorun var
veri row 1 onaylı
veri row 2 onaylı
veri row 3 onaylı
veri row 4 onaysız
veri row 5 onaylı
veri row 6 onaylı
diyelim ki sayfada 6 veri getirmek istiyorum row olarak çağırdımız içinmidir nedir bilmiyorum onaysızı göstermiyor ama 6 adetin içinde sayıyor yani 7. veriyi ilk sayfaya düşürmüyor.
Sorunu anladım. Bir örnek ile çözmeye çalışacağım. Sonucu buradan yazarım.
Merhaba. Sorunun kaynağını buldum. Daha önceki cevabımda dediğim where koşulu ile atadığımız satır numaralarını kontrol ediyoruz. Veritabanımızdaki verilerle bir ilgisi yok. Bizim koşulu koymamız gereken yer ".. from tablo_adi where koşul" şeklinde olmalı. İyi Çalışmalar!
Evet , dediğin gibiymiş. Bir yere odaklanınca çözümü görmek imkansızlaşıyor resmen.
Teşekkürler.
üstad yukardaki sorgu stringindeki sql cümleciğini access veritabanına gore nasıl yazabiliriz? accesste hata veriyor. bu cümlenin tam olarak accesste calismasi icin karsiligi nedir?
Bu sorguda sayfalama yapmak için verilere sanal bir id atayıp onun üzerinden sayfalamayı gerçekleştiriyoruz. Bunu da sağlayan Sql veritabanı. Bildiğim kadarıyla access bunu desteklemiyor. Access ile sayfalama yapmak için verilerin hepsini çekip, datatable veya dataset`e aldıktan sonra bu nesneler üzerinden sayfalama yapmak gerekiyor.
Merhaba.Buradaki over ne anlama geliyor?Yani order by üzerindeki etkisi ne??Ben parametreleri dogru girmeme ragmen -- datalarim((sayfa_numarasi - 1) * sayfalama_adeti, sayfa_numarasi*sayfalama_adeti)--
Sayfada sadece linkler geliyor ve bir türlü sorunu bulamadım.VStudio 2008 ile calısıyorum ve bu studionun altındaki sql i kullanmaktayım??(burada row_number) gecer herhalde??
Sorgudaki over sutuna göre sıralama yapılmasını sağlıyor. Bu şekilde istediğimiz sutuna göre verileri sıralayıp bu verileri row_number ile numaranlandırıp bu numaralara göre sayfalama yapıyoruz. Row_number fonksiyonu daha önceki yorumlarda da dediğim gibi sql 2005 ile geldi. Kullandığın Express sürümünde de olması gerekir (2005 veya üstü ise).
cevabın için tesekkurler.Ben bu sırada Repeater yerine GridView kullanınca çalıştı.Hiç bir kodda da değişiklik yapmadım.Sadece Repeater yerine Gridview ekledim.Bunun nedeni ne olabilir?Bu sırada basarılarının da devamını dilerim.
Temennin için teşekkür ederim. Umarım hepimiz başarılı oluruz. Soruna gelince Repeater kullanınca verileri yazdırmak için Eval veya Bind fonksiyonlarını kullanarak item template bölümünü oluşturmalıyız. Eğer bunu yapmazsak verileri görüntüleyemeyiz. Gridview ise bunu otomatik olarak yapıyor. Ancak gridview'da autogeneratecolumns özelliğini false yaptığın takdirde aynen repeater gibi kullanmak gerekir.
Bu örnek uygulama tek tablo ile gayet güzel çalışıyor amam ben iki tabloyu birleştirip öyle sayfalama yapmak istiyorum şöyle bir sorgu oluşturdum ama hata veriyor "SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY tblhaberler.hID) AS SatirID, * FROM tblhkategori INNER JOIN tblhaberler ON tblhkategori.kID = tblhaberler.kID) AS Sonuc WHERE Sonuc.SatirID BETWEEN 0 AND 10
" nerede hata yapıyorum acaba.
Merhaba. Cevabım geç oluyor. Çünkü örneği denemek ve öyle yazmak istedim ancak fırsat bulamadım. Muhtemelen sql syntax hatası vardır. Bununla ilgili
buradan örnek sorguları görebilirsin. Umarım yardımcı olur. Fırsat bulabilseydim kendim deneyecektim ama fırsatım olmadı.