2017-06-17 4 views
0

DataGridviewの値の編集フォームがあります。問題は更新コードです。コード全体を更新:DataGridviewの1つの値を更新できません

int value = int.Parse(label13.Text); // ID 
      string txtbox2 = textBox2.Text.ToString(); 
      string txtbox1 = textBox1.Text.ToString(); 
      try 
      { 
       var cmd = new OleDbCommand(); 
       cmd.CommandType = CommandType.Text; 
       cmd.CommandText = "UPDATE guestreg SET g_name='" + txtbox1 + "' AND g_surname = '"+txtbox2+"' where ID [email protected]"; 
       cmd.Parameters.AddWithValue("@id", value); 
       cmd.Connection = connection; 
       connection.Open(); 
       cmd.ExecuteNonQuery(); 
       { 
        MessageBox.Show("Update Success!"); 
        connection.Close(); 
       } 

更新SQLコマンドを更新するだけで一つの値含まれている場合 - それは動作します(例):

cmd.CommandText = "UPDATE guestreg SET g_name='" + textBox1.Text + "' where ID [email protected]"; 

enter image description here 値がまったく更新されません。しかし、メッセージボックスはすべてが完了したことを示しています。 名前を「0」に変更するだけです。

ありがとうございます。

+0

「AND」は使用できません。カンマで置き換えてください。そして、idだけでなく、すべての変数をパラメータ化します。 – Crowcoder

+0

@Crowcoder大丈夫、今すぐ試します –

+0

@Crowcoderはコードを更新しましたが、まだ動作しません。名前の値が "0"に変更されました –

答えて

1

更新ステートメントが無効です。これを試してみてください:

cmd.CommandText = "UPDATE guestreg SET g_name='" + textBox1.Text + "', g_surname = '"+textBox2.Text+"' where ID [email protected]"; 

私たちはここにいる間に、それらのテキストボックスの値をパラメータとして渡すべきです。クエリはSQLインジェクションに対して脆弱です。 What is SQL injection?

+0

は今すぐ試してみる –

+0

更新済み、まだ動作していません –

+0

更新済み::) –

関連する問題