-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)

StartsWithEndWithおよびの使用を認識しています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%'

ユーザーが検索の種類を選択できるようにする場合は、スイッチと 3 つの異なるクエリが必要です。クエリを複製するか、基本的なクエリを 1 回実行してから、スイッチに応じてその結果をフィルタリングします。

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 に答える