2017-08-14 7 views
0

この呼び出し考えてみましょう:varchar型のフィールドにC#で特定の番号を返す

results = db.Students.Where(x => x.Code == current_search); 

を私は唯一の正確な数の結果を得ることができるようにしたいと思います。 639を検索すると、639を含む他の数字も返されます(例:1639)。フィールドにはテキスト文字列が含まれているため、整数フィールドとして使用することはできません。

検索している単一の番号だけを返すにはどうすればよいですか?おそらく私はある種の正規表現を必要としますが、ここに挿入することができますか?

+7

これは、あなたが説明したものと一致しない値だけを与えるでしょう – Sajeetharan

+0

いくつかのサンプルコードを提供できますか? – Harsh

+2

これは 'Where'の仕組みではありません。これは完全一致を返します。 – stybl

答えて

1

検索する単一の番号を返すにはどうすればよいですか?

おそらく、データを格納する方法を再考する必要があります。

おそらく私は何らかの正規表現を必要としますが、ここに挿入することはできますか? またはコードブレークはありますか?

正規表現をSQLに変換できないため、linqに正規表現を追加することはできません。私がここに見る最も近いアプローチは、Containsを使用してフィルタリングされたデータを最初に取得することです。

results = db.Students.Where(x => x.Code.Contains(current_search)); 

さらに、正規表現に基づいて結果セットをフィルタリングします。

ところでx.Code == current_searchは完全に一致します。

+0

結果セットをさらにフィルタリングするにはどうすればよいですか?これは私が解決するために苦労しているものです。 – kamil1995b

+1

正規表現を書いて、あなたが望むものと正確に一致するものを見つけて、それをressultsetに適用します。 – Harsh

関連する問題