2009-03-11 21 views
1

GridView ASP.NET 2.0 kullanıyorum. Ben arama crieteria (Ziyaretçi Adı, Pasaport Numarası, Şirket Adı) başına GridView 3 tablolardan (SQL2005) ayrıntıları göstermek istiyorum. Çalışıyor, ama "Ziyaretçi Adı" nın ilk harfi ile arama yapmak için joker karakter kullanmak istiyorum. Kodumu GridView'da (Datasource'u Yapılandır) kullanarak QueryBuilder'de var. şöyle sorgusu:ASP.NET GridView için sorguda joker karakteri

SELECT FormMaster.NameofCompany, VisitorMaster.NameofVisitor, 
VisitorMaster.PassportNumber, FormMaster.FormID, 
VisitorMaster.VisitorID FROM VisitorMaster INNER JOIN VisitorDetails ON 
VisitorMaster.VisitorID = VisitorDetails.VisitorID INNER JOIN FormMaster ON 
VisitorDetails.FormID = FormMaster.FormID WHERE (FormMaster.FormStatusID = 1) AND 
(VisitorMaster.PassportNumber = @PassportNumber) OR 
(VisitorMaster.NameofVisitor = @NameofVisitor) OR 
(FormMaster.NameofCompany = @NameofCompany) 
+0

iyi tanrı almighty, en azından kelimelerin arasına boşluk koymaya çalışabilir misin? –

+0

Evet, sadece bir çok şeyi yeniden biçimlendirmek için soruya cevap bloğunu kopyaladım. –

cevap

0

@NameofVisitor + '%' gibi VisitorMaster.NameofVisitor

0

deneyin" gibi NameOfVisiotr yerine 'A%'

1

Sorgunuzda geçerli:

SELECT 
    FormMaster.NameofCompany, 
    VisitorMaster.NameofVisitor, 
    VisitorMaster.PassportNumber, 
    FormMaster.FormID, 
    VisitorMaster.VisitorID 
FROM 
    VisitorMaster INNER JOIN VisitorDetails ON 
    VisitorMaster.VisitorID = VisitorDetails.VisitorID 
    INNER JOIN FormMaster ON VisitorDetails.FormID = FormMaster.FormID 
WHERE 
    (FormMaster.FormStatusID = 1) AND 
    (VisitorMaster.PassportNumber = @PassportNumber) OR 
    (VisitorMaster.NameofVisitor = @NameofVisitor) OR 
    (FormMaster.NameofCompany = @NameofCompany) 

Doğru çalıştığından emin misiniz? FormMaster.FormStatusID 1'e eşit değilse ve son iki cr'dan biri iriyan doğrudur, o sıraya yine dönecektir. AND, TSQL'de OR'dan daha yüksek önceliğe sahiptir.

Düzgün, senin WHERE fıkra olmalıdır.

FormMaster.FormStatusID = 1 AND (
    VisitorMaster.PassportNumber = @PassportNumber OR 
    VisitorMaster.NameofVisitor LIKE @NameofVisitor OR 
    FormMaster.NameofCompany LIKE @NameofCompany) 

Ve @NameofVisitor bir% ekler ve @NameofCompany o Shawn veya WebMatrix şeyi eşleşen olacak önermek yol yapmak yönteme geçen parametreler eğer LIKE '' sadece boş bir dizeyle eşleşirken bir şeyden geçmeyin.