我花了很长时间试图解决这个问题,但我没有得到任何地方,所以我帮助别人帮助我。我有一个搜索表单,我希望在文本框中使用Like%运算符。
这是我的代码片段:
var data = mg.DatabaseTable.Where(m => m.UserName.StartsWith(TextBoxUserID.Text) &&
m.Content.Like(%TextBoxBarcode.Text&) &&
m.Action.StartsWith(DropDownListStatus.Text) &&
m.Site.Contains(TextBoxSite.Text));
我希望有可能在"%%"
中使用m.Content(textbox)
或者它是如此。
我知道使用StartsWith
,EndWith
和Contains
。我想通过使用"like %"
选择如何查询搜索
您可以使用:
m.Content.StartsWith(TextBoxBarcode.Text);
对于
like 'search%'
要么:
m.Content.EndsWith(TextBoxBarcode.Text);
对于
like '%search'
要么:
m.Content.Contains(TextBoxBarcode.Text);
对于
like '%search%'
如果您希望用户能够选择搜索类型,那么您需要有一个开关,然后是三个不同的查询。复制查询或执行一次基本查询,然后根据交换机过滤结果:
var data = mg.DatabaseTable.Where(m => m.UserName.StartsWith(TextBoxUserID.Text) &&
m.Action.StartsWith(DropDownListStatus.Text) &&
m.Site.Contains(TextBoxSite.Text));
if (searchMode == StartsWith)
{
return data.Where(m => m.Content.StartsWith(TextBoxBarcode.Text);
}
else if (searchMode == EndsWith)
{
return data.Where(m => m.Content.EndsWith(TextBoxBarcode.Text);
}
else
{
return data.Where(m => m.Content.Contains(TextBoxBarcode.Text);
}