0

Insert ステートメントで where 条件を使用できますか???? 私はこのようにコーディングしました。エラー call MySQLException was unhandled, You have an error in your SQL syntax; が表示されました。1 行目の 'WHERE RegistrationID='3'' の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。私のコード:-

MySqlCommand cmd1 = new MySqlCommand("INSERT INTO registration(DueAmount) VALUES ('"+textBox5.Text + "') WHERE RegistrationID='"+textBox2.Text+"'",connection);
4

6 に答える 6

1

2 つの異なるステートメントを混在させています。

  • UPDATEステートメントは、テーブル内の既存の行を更新します。
  • ステートメントは、INSERTテーブルに新しい行を追加します。

UPDATEステートメントを使用して既存の行を変更したいと思います。

MySqlCommand cmd1 = new MySqlCommand("
UPDATE Registration Set DueAmount= '"+textBox5.Text 
+ "' WHERE RegistrationID='"+textBox2.Text+"'",connection);
于 2012-10-08T08:32:27.770 に答える
1

INSERTdoes not haveWHERE句の正しい構文。の代わりUPDATEINSERT

UPDATE registration 
SET DueAmount = 'txt5'
WHERE RegistrationID = 'txt2'

in で使用できる唯一の方法は、ステートメントを使用WHEREしてSELECTいる場合です。INSERT INTO....SELECT

もう1つ、を使用しているため、ADO.NETクエリをパラメーター化して回避SQL Injectionし、USINGステートメントを使用していることを確認してください。

string query = "UPDATE  registration 
                SET     DueAmount = @dateAmount
                WHERE   RegistrationID = @RegID"
using (MySqlCommand cmd1 = new MySqlCommand(query,connection))
{
    cmd1.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@dateAmount", textBox5.Text);
    cmd.Parameters.AddWithValue("@RegID", textBox2.Text);

    // other codes
}
于 2012-10-08T08:13:12.697 に答える
0

INSERTデータベースに改行を入れます。改行は入れられませんWHEREsthはsthです。しかし、あなたはUPDATEそれをすることができます。お役に立てれば。

于 2012-10-08T08:14:36.210 に答える
0

UPDATEステートメントを使用する必要があります。

tHS構文は類似しています:"UPDATE登録SETDueAmount ='" + textBox5.Text + "'WHERE RegistrationID ='" + textBox2.Text + "'"

于 2012-10-08T08:15:37.753 に答える
0

あなたはで試すことができますUpdate

var query = "UPDATE Registration SET DueAmount= $Paremeter1 WHERE RegistrationID = $Paremeter2";
var cmd1 = new MySqlCommand(query, connection);

cmd1 .Parameters.AddWithValue("$Paremeter1", textBox5.Text);
cmd1 .Parameters.AddWithValue("$Paremeter2", textBox2.Text);
于 2012-10-08T08:21:44.177 に答える
0

INSERT意味がWHEREありません。 INSERT常に新しい行を挿入します。REPLACE INTOそのレコードが存在しない場合は挿入を行い、主キーに基づいて存在する場合は更新を行うものを探しているかもしれません。

于 2012-10-08T08:12:58.940 に答える