2012-03-10 57 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 & "%"澄清,但是这一切都取决于你。