basit bi search sayfası yaptım. textbox a girilen cümleyi split ile parse ediyorum.daha sonra cümleleri sql de or ile birleştirip sorguyu çalıştırıyorum.fakat cümlenin en sonunda eğer boşluk varsa sql bozuluyo ozaman bütün değerler dönüyo. bu boşluk olayını nasıl hallederim.

public DataTable ParseEt(string[] parcalar)
{
    sSQL = "select * from tabloadi where 1=1 AND  ( ";
    for (int i = 0; i < parcalar.Length; i++)
    {
        if (i < parcalar.Length)
        {
            sSQL += " Aciklama like '%" + parcalar[i] + "%'";
        }
        if (i+1 < parcalar.Length)
        {
            sSQL += " Or ";
        }
    }
    sSQL += ")";
    return ReturnDataTable();
}

diyelim textbox a istanbul ucuz kahvaltı yazdı sql çalıştığında böyle oluşuyo

select * from tabloadi where 1=1 AND

(Aciklama like '%istanbul%' Or Aciklama like '%ucuz%' Or Aciklama like '%kahvalti%')

ama cümlenin en sonunda bide boşluk olursa sql bozuluyo bütün olasılıkları getiriyo ozaman.

select * from tabloadi where 1=1 AND
(Aciklama like '%istanbul%' Or  Aciklama like '%ucuz%' Or  Aciklama like '%kahvalti%'
 Or  Aciklama like '%%')

soruldu: 10 Mar '13, 17:08

wifi's gravatar image

wifi
748384454
cevap kabul oranı: 100%

değiştirildi: 11 Mar '13, 05:00

CemIkta's gravatar image

CemIkta ♦
19.9k29125190


Eğer cümlenin sonunda boşluk varsa, aldığın her kelimeyi trim() metdoyla boşluklarını alacaksın böylece bu tip bir ihtimalin önüne geçmiş olursun.

Diğer bir yaklaşım ise database tarafında LIKE TRIM('% + kelime + %') şeklinde database tarafında metodu kullanman. Spesifik durumların oluşursa sağ taraftaki boşluk için RTRIM, sol taraftaki boşluk içinse LTRIM sql fonksiyonlarını kullanabilirsin.

İkinci yöntemi tavsiye ederim.

permanent link

cevaplandı: 10 Mar '13, 18:14

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

değiştirildi: 10 Mar '13, 18:15

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×77

Soruldu: 10 Mar '13, 17:08

Görüntüleme: 1,117 kez

Son güncelleme: 11 Mar '13, 05:00

powered by BitNami OSQA