0

私はこのようなSelectステートメントを持っています..

Select * From A Join B on A.ID = B.ID
 And A.Gener = 'M'
 And A.Age = 21
 And B.School = 'Bluh'   
--- many more AND Clauses

現在、これらの「AND」句は動的であり、vb.net Web アプリケーション内でのユーザーの選択に基づいて構築されます....

例えば...

if gener.text <> "" Then
   qry = qry & " And A.Gender='M'"

このようにオンザフライで SQL クエリを作成したくありません。LINQ などを使用してより良い方法はありますか?

実際の SQL クエリには、最大 30 個の動的 AND が含まれます (ユーザーの選択に基づく)。

お知らせ下さい。

ありがとう

4

2 に答える 2

1

すべてのステートメントに使用します。

qry = qry & " And (A.Gender='" & 性別.テキスト & " ' OR '" & 性別.テキスト & "' = '' ) "

于 2013-01-15T07:41:20.427 に答える
0

私はそれをこのように変えるでしょう

Select * From A Join B on A.ID = B.ID
 And (A.Gener = @arg1 or @arg1 is null)
 And (A.Age = @arg2 or @arg2 is null)
 And (B.School = @arg3 or @arg3 is null)

---さらに多くのANDClausesju

このように、null値をプロシージャに渡すと、それらは論理的に無視されます-それがあなたのケースで機能するかどうかはわかりません

動的なtsqlクエリアプリケーション側を明確に構築することは、SQLインジェクションへの招待です

于 2013-01-15T09:56:49.707 に答える