我花了很长时间试图解决这个问题,但我没有到达任何地方,所以我帮助别人帮助我。 我有一个搜索表单,我希望在文本框中使用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 %"
的使用情况。我希望能够选择如何使用{{1}}
答案 0 :(得分:1)
您可以使用:
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);
}