こんにちは私は問題があり、3日間それを解決することができません。私はこことグーグルで多くの投稿を赤くしました、しかし私は解決策を見つけることができません。
dbには、列「Gener」があります-nvarchar(350)には、たとえば次のものが含まれています。
row 1: 1,4,32,11
row 2: 32,11
row 3: 1
row 4: 4,56,1,23
row 5: 4
チェックボックスリストから、この値をチェックします:1,4これはに追加されます
List<string> gnr = new List<string>();
私が欲しい結果は1行目と4行目です。
結果が行3と行4になるコードを作成しました(stackoverflowから取得)。
var result = from m in db.Movies
where gnr.Contains(m.Gener)
select m;
そして、結果が行1、行3、行4、行5になるコード:
foreach (string term in gnr)
{
var trb = db.movies.Where(o => o.Gener.Contains(term));
}
Ole DBを使用して作成することはできますが、LINQを使用すると、ここにコードを配置することはできません。
List<string> Gener = new List<string>();
Gener = Action,Comedy
StringBuilder builder = new StringBuilder();
string lastItem = Gener[Gener.Count - 1];
// Here I made string Which I'll add to cmd string
foreach (string safePrime in Gener)
{
if (safePrime != lastItem)
{
builder.Append("((gener LIKE '%" + safePrime + "%')) AND").Append(" ");
}
else
{
builder.Append("((gener LIKE '%" + safePrime + "%')) ORDER By ID DESC").Append(" ");
}
}
string dbSelect = builder.ToString();
//The result from loop
dbSelect = "((GenerLIKE '%Action%')) AND ((GenerLIKE '%Comedy%')) ORDER By ID"
//Add dbSelect to exist cmd
Cmd1.CommandText = "SELECT * FROM movies WHERE " + dbSelect;
そして、ここでの結果は、私がLINQで望んでいるものです。アクションとコメディであるすべての映画を選択してください。これを赤くしてくれてありがとう、私はいくつかの助けに非常に感謝します。私の英語で申し訳ありませんが、私はそれが読めることを願っています。