2012-03-10 69 views
0

我試圖使用數據的列表的搜索框和我用LINQ查詢的LINQ查詢是:用戶搜索

data = (From k As BSPLib.ContactLib.Contact In data_org.Values Where k.stringdata Like "%" & Searchtxtbox.Text & "%" Select k.prime).ToList 

但是這是行不通的,我根本沒有得到數據。 Data_org是一本字典,所以我使用了這些值; k.stringdata包含所有需要搜索的數據。 Searchtxtbox.text包含用戶定義的搜索項目。

我試過sqlmethods通過linq,但sqlmethods不存在我,我試着用Imported命名空間,但代碼沒有顯示sql方法,請你提供一個可行的查詢或只是告訴我,我哪裏出了問題。謝謝。

回答

0

%通配符在這裏不起作用,請記住這是.NET代碼,而不是SQL。你需要像這個:

data = (
    From k As BSPLib.ContactLib.Contact In data_org.Values 
    Where k.stringdata.Contains(Searchtxtbox.Text) Select k.prime).ToList 
1

我的Visual Basic是有點生疏所以請原諒我,如果我有錯的語法: 你可以使用的一件事是包含這將是類似「%Searchtxtbox.Text% 「 ,如果與DatabaseContext一起使用,則完全相同。 我知道它與Like不一樣,但如果這不起作用,那麼可能出現其他問題,而且我想要更多的代碼。

data = (From k As BSPLib.ContactLib.Contact In data_org.Values Where k.stringdata.Contains(Searchtxtbox.Text) Select k.prime).ToList 

你還可以使用StartsWithEndsWith"Searchtxtbox.Text%""%Searchtxtbox.Text" 此外,我想建議,以括號之間北醫三院"%" & Searchtxtbox.Text & "%"澄清,但是這一切都取決於你。