whereフィルタを適用しようとしているところに問題があります。しかし、これは意図したとおりに動作していません。c#Lambdaを使用したSQL:複数の結果をフィルタリングできません
それは、このラインについてです
& & fout.Omschrijving.Contains(textboxFilterOmschrijving.Text)
今ではこの1つのフィールドに部分一致ですべての結果を返すことが可能です。しかし、私は1つの入力フィールドに複数の単語を含むことができるようにしようとしているし、それに一致するすべての結果を返します。
入力は '、'で区切られます。そのような:
一覧listMyOmschrijvingen = textboxFilterOmschrijving.Text.Split( '')ToListメソッド();。
次に、これらに一致するものが検索されますが、Containsプロパティを無視して完全一致の場合にのみ表示されます。望んでいたように、これはすべてのこれらの結果を与える
& & listMyOmschrijvingen.Contains(fout.Omschrijving)
。しかし、唯一のことは100%正確である必要があることです。すべての結果をDEF_ACKとDEF_VOLTにしたい場合は、入力フィールド "Omschrijving"としてack、voltと入力すると、SQLデータベースからすべての一致するレコードが得られます。それは私が(希望の結果、最大でも混乱スペース)DEF_ACK、DEF_VOLTを入力する必要が例えば100%完全一致
だとき
は今、それだけでこれを行います。誰もこれを解決する方法のアイデアを持っていますか?おそらく、本当にばかげているかもしれません。なぜなら、それは1つのレコードでは簡単ですが、動的にはそれほど簡単ではないからです。FoutenResultaat =
(from x in treinen
join fout in fouten
on x.TreinId equals fout.TreinId
where dateStart <= fout.Datum && dateEnd >= fout.Datum
&& treinenIds.Contains(fout.Treinen.Name)
&& fout.Omschrijving.Contains(textboxFilterOmschrijving.Text)
&& fout.FoutCode.Contains(textboxFilterFout.Text)
&& fout.Module.Contains(textboxFilterModule.Text)
orderby fout.Datum descending, fout.Time descending
select new
{
Datum = fout.Datum,
Time = fout.Time,
FoutCode = fout.FoutCode,
Omschrijving = fout.Omschrijving,
Module = fout.Module.ToUpper(),
FoutId = fout.FoutId,
Name = x.Name,
});
あなたは、入力、出力、および期待される結果の一例を提供することができますか?例を取らずにあなたの試みに従い、何が間違っているのかを理解することは難しいです。 – Sinatr