2012-04-04 7 views
0
SqlDataAdapter da = 
    new SqlDataAdapter("SELECT * 
     FROM Patient 
     Where Registration_Id = '" + textBox1.Text + "' 
      OR Patient_Name = '" + textBox1.Text + "'", cn); 

すべてのフィールドでintまたはstringを検索するにはどうすればよいですか?すべてのフィールドでintまたはstringを検索する方法

編集コード:あなたはそれをサニタイズする必要があるので、この方法は、SQLインジェクション攻撃の対象となり得るものについては

if (comboBox1.Text == "Registration_Id") 
{ 
    da = new SqlDataAdapter("SELECT * 
          FROM Patient 
          Where Registration_Id = '" + textBox1.Text + "'", cn); 
} 
else if (comboBox1.Text == "Patient_Name") 
{ 
    da = new SqlDataAdapter("SELECT * 
          FROM Patient 
          Where Patient_Name = '" + textBox1.Text + "'", cn); 
} 
+7

このようなコードを記述しないでください。SQLインジェクション攻撃の対象です。 – RedFilter

+0

if(comboBox1.Text == "Registration_Id") { da =新しいSqlDataAdapter( "SELECT * FROM患者の場合、Registration_Id = '" + textBox1.Text + "'"、cn); (comboBox1.Text == "Patient_Name") {DA =新しいSqlDataAdapterオブジェクトが他の場合 }( "患者SELECT * FROM場合Patient_Name = '" + textBox1.Text + "'"、CN)。 } –

答えて

0

。それ以外の場合は一つの解決策は、(あなたが攻撃をチェックした後)である:

SELECT * 
FROM Patient 
Where column1 like "'%" + textBox1.Text + "%'" 
    or column2 like "'%" + textBox1.Text + "%'" 
    ...... 
    or columnn like "'%" + textBox1.Text + "%'" 

これは、彼らがアイテムのIDを知らない場合には、その列をチェックしていないという事実によって簡素化することができます。それ以外の場合は、検索する列を選択するドロップダウンがあります。

関連する問題