Linq查询用户搜索

时间:2012-03-10 21:14:45

标签: wpf vb.net linq-to-sql filter

我正在尝试使用数据列表从搜索框中查询,我使用的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包含用户定义的搜索项。

我通过linq尝试使用sqlmethods,但sqlmethods对我来说不存在,我尝试使用Imported命名空间但代码没有显示sql方法,请你提供一个可行的查询或只是告诉我哪里出错了。谢谢。

2 个答案:

答案 0 :(得分:1)

我的Visual Basic有点生疏,所以如果我的语法错误,请原谅我: 您可以使用的一件事是Contains,类似于“%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 & "%"进行澄清,但这完全取决于你。

答案 1 :(得分:0)

%通配符在这里不起作用,记住这是.NET代码,而不是SQL。你需要这样的东西:

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