2017-04-12 11 views
-2

私は自分のアプリケーションの検索リファイナーを作っていますが、現在、ユーザーが入力したフォームに基づいて関連するリスティングを返すクエリを作成しています。フォームフィールドはオプションであり、どのフィールドが入力されたかに基づいてルックアップを変更します。 SQLである私たちがやるvb.netの6つのテキストボックスからのユーザー入力に基づいてdinamic sqlリクエストを作成する方法は?

+2

コードなしでは、誰も助けてもらえません –

+1

[ask]を確認してください – Mederic

答えて

-1

が行う以下の通りです:

Select * from table where 
    (ISNULL(@field1, '') = '' OR @field1 = table.field1) 
    and (ISNULL(@field2, '') = '' OR @field2 = table.field2) 
    and (ISNULL(@field3, '') = '' OR @field3 = table.field3) 
    and (ISNULL(@field4, '') = '' OR @field4 = table.field4) 
    and (ISNULL(@field5, '') = '' OR @field5 = table.field5) 
    and (ISNULL(@field6, '') = '' OR @field6 = table.field6) 

やVBでの

dim sql as string = "Select * from table where 
    (ISNULL(" & textBobx1.text & ", '') = '' OR " & textBobx1.text & "= table.field1) 
    and (ISNULL(" & textBobx2.text & ", '') = '' OR " & textBobx2.text & "= table.field2) 
    and (ISNULL(" & textBobx3.text & ", '') = '' OR " & textBobx3.text & "= table.field3) 
    and (ISNULL(" & textBobx4.text & ", '') = '' OR " & textBobx4.text & "= table.field4) 
    and (ISNULL(" & textBobx5.text & ", '') = '' OR " & textBobx5.text & "= table.field5) 
    and (ISNULL(" & textBobx6.text & ", '') = '' OR " & textBobx6.text & "= table.field6)" 
あなただけのフォーム上のフィールドがある場合ことを確認することによって、すべてのフィールドを渡す必要があり

空白を渡すか、テキストボックスのテキストを渡してNULLを返す関数を呼び出すことができます。

+0

これはSQLインジェクションに対してオープンです。 **常に**パラメータを使用すべきです。 – Bugs

+0

あなたの答えをありがとう私はちょうど二重引用符を追加し、それは完璧に正常に働いた! – kot

関連する問題