我正在尝试使用数据列表从搜索框中查询,我使用的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方法,请你提供一个可行的查询或只是告诉我哪里出错了。谢谢。
答案 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
您还可以StartsWith
和EndsWith
使用"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