-1

我花了很长时间试图解决这个问题,但我无处可去,所以我帮助别人帮助我。我有一个搜索表单,我希望在文本框中使用 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 %"

4

1 回答 1

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);
}
于 2012-11-07T13:19:04.803 回答