2017-02-14 2 views
1

シリアル番号と装置IDの値をSQL Serverの列と比較するコードを記述します。ユーザーの検索が削除または削除された値が「レコードが見つかりません」と表示したい場合SQL Serverのテキストボックスと列の値を比較するためのコードを記述する方法は?

私の問題はここで私はifステートメントのコードを書く方法がわかりません。ここで

は私のコードです:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection("Data Source=5CG50749V3\\SQLEXPRESS;Initial Catalog=test;Integrated Security=True"); 

    SqlDataAdapter sda = new SqlDataAdapter("Select * FROM [Equipment] WHERE SerialNumber='" + SerialNumber.Text + "' or EquipmentID ='" + EquipmentID.Text + "'", con); 

    DataTable dt = new DataTable(); 
    sda.Fill(dt); 

    SerialNumber.Text = dt.Rows[0][5].ToString(); 
    EquipmentID.Text = dt.Rows[0][4].ToString(); 
} 
+0

[SQLインジェクションアラート](http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - SQL文を連結しない** - 代わりにSQLの注射を避けるため** **パラメータ化されたクエリ**を使用します。 –

答えて

0

SqlConnection con = new SqlConnection("Data Source=5CG50749V3\\SQLEXPRESS;Initial Catalog=test;Integrated Security=True"); 

    SqlDataAdapter sda = new SqlDataAdapter("Select * FROM [Equipment] WHERE SerialNumber='" + SerialNumber.Text + "' or EquipmentID ='" + EquipmentID.Text + "'", con); 

    DataTable dt = new DataTable(); 
    sda.Fill(dt); 

     if (dt.Rows.Count != 0) // this will check weather any records are returned 
      { 
       // If record is found 
       SerialNumber.Text = dt.Rows[0][5].ToString(); 
       EquipmentID.Text = dt.Rows[0][4].ToString(); 
      } 
     else //if no record is found it will display alert 
      { 
       ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('no record found');", true); 
      } 
0

あなたはデータテーブル(DT)のrows.countを使用することができ、レコードが見つからない場合、それはポップアップが表示されます

If (dt.rows.count == 0) 
{ 
    ' no rows returned, notify user 
} 
+0

私はコードを入れようとしますが、ポップアップのポップはありません。 –

+1

あなたはブレークポイントを設定し、値で何が起こっているかを見てみるように聞こえます。 2つ以上の行を返す可能性があり、静的に行0のみを参照すると不要な結果が返される可能性があるため、クエリでいくつかの問題が発生します。しかし、これらの答えのどれも働いていない場合、私たちはあなたを誤解しているか、あなたが本当に必要としているものとは異なるものを求めています。 –

0

試してみる

if (dt != null && dt.Rows.Count >0) 
{ 
//Then your logic 
} 
else 
{ 
//popup script 
} 
+0

問題は、シリアルナンバーまたは機器IDであるテキストボックスの1つをユーザが入力しなければならないことです。 dt = nullの場合、else文にジャンプします。シリアル番号または機器IDのいずれかを受け入れることができるかどうかを確認する方法は、値を持つことができます。 –

関連する問題