Asp.Net Site içi Arama Yapma Detaylı Anlatım

1. Adım ) Master Sayfada arama alanı oluşturma ve gerekli kodlaması..
İlk Önce bir Master Page oluşturup... Bir TextBox ve bir Button atıyoruz..

Daha sonra Sitede Ara! butonunun click Event'inde aşağıdaki kodları yazıyoruz..

1)  Textbox'a girilen değer bir kelimemi yoksa birden fazlamı onu kontrol ediyorum. Eğer içinde boşluk varsa birden fazladır.

2) Daha sonra textbox'taki değeri boşluğa göre Split edip bir diziye atıyorum.. Kelimeleri tek tek işleyebilmek için.

3) Querystring üzerinde kullanabilmek için string yol değişkeni değeri boş olacak şekilde tanımlıyorum.

4)  Dizinin içinde dizinin boyutu kadar dönüyorum

5)  ve yol değişkenin querystring yolu olcak şekilde oluşturuyorum.
                        bu for döngüsünün sonucu şu şekilde çıktı vericek...
                         kelime0=....&kelime1=...& 

6) Yukardaki sorguyu oluştururken her dönüşte += yaparak üzerine ekleme yaptıgı için sonda  bir tane " & " işareti fazladan olacak.. Onu substringle yol'dan çıkarıyorum..

7)  Daha sonra Response redirectla arama sayfasına querystring yolunu veriyorum..
Şöyle bir çıktı olmuş oluyor.....
arama.aspx?kelime0=...&kelime1=....&....

8) Textbox Boşluk içermiyorsa tek kelimeyi querystring'le yolluyorum.

2) Arama.aspx QueryString'ten gelen verileri kullanarak Datalist'e Bind Etmek...

Önce Master Page'ten 1 arama.aspx sayfası türetelim... ve ContentPlaceHolder içine bir tane DataList atalım...
Daha Sonra aşağıdaki kodları yazalım...

1)  Kaç tane query var onu öğrenip queryCount değişkeninne atıyorum...
2) Az öncekine benzer şekilde.. Veritabanında arama yaptırcak sorgu değişkenini yine boş olucak şekilde tanımlıyorum..
3) Burda gelen QueryString'ler 1 den fazla ise Or kullanarak birden fazla sqlSorgusu oluşturuyorum..
4)  queryString sayısı kadar dönüp sorguyu LIKE arama komutuyla bütün queryString verilerini arattıryorum...
5) Bunun çıktısı şu şekilde olur....

                         "makaleBaslik LIKE '%kelime0 or makaleBaslik LIKE '%kelime1 or.... %' or " şeklinde olcak..
6) Burası query sayısı 1 ise oluşacak sorgu..
7) Veri okuyorsa
8) Arama.aspx'e attıgım Datalist'e Bind ediyorum
9) Okumuyorsa hata sayfasına gönderiyorum.. Bu kadar.. Çalışmasını göreLim.. Çok güzel şekilde çalıştı yalnız bu kodlar sadece makale başlıklarında arama yapar içerikte arama yapmak istiyorsanız sorguyu çevirebilirsiniz kolay gelsin...

Projenin Çalışır halini linkten indirebilirsiniz.. Veritabanı kendi kodlarınıza göre ayarlayın..

Arkadaşlar sitedeki reklamlara birer kez tıklarsanız sevinirim..


                         www.csharprogramyaz.blogspot.com
Konu bana aittir alıntılama yaparsanız lütfen siteyi kaynak olarak gösterin!!!..



Yorumlar

  1. Entity Framework ile arama için
    http://kodstrap.com/makale-entity-framework-ile-site-ici-arama-6 adresini ziyaret edebilirsiniz

    YanıtlaSil

Yorum Gönder