2016-12-29 6 views
1

私は一意のキーでMySQLデータベースに書きます。理想的には、そのキーを持つ行がすでに存在する場合、更新したい列を更新するだけです。次のような感じです:VB.Net一意のキーでMySQLを更新する

INSERT INTO read_initial(column1,column2) VALUES (%s, %s) ON DUPLICATE KEY UPDATE column1 = VALUES(column1value); 

私はこのためにvb.netのバリエーションを見つけようとしています。現時点では、私は切り捨てを実行しており、すべてを書き直していますが、それは明らかに理想的ではありません。

私が使用している挿入のための瞬間:

Using SQLConnection As New MySqlConnection(myBuilder.ConnectionString) 
           Using sqlCommand As New MySqlCommand() 
            With sqlCommand 
             .CommandText = "INSERT INTO read_initial (`column1`, `column2`,) values (@column1value,@column2value)" 
             .Connection = SQLConnection 
             .CommandType = CommandType.Text 
             .Parameters.AddWithValue("@column1", "column1value") 
             .Parameters.AddWithValue("@column2", column2value) 

私は

.CommandText = "INSERT INTO read_initial (`column1`, `column2`,) values (@column1value,@column2value) ON DUPLICATE KEY (`column1`) values (@column1value)" 

へのCommandTextを変更しようとしている。しかし、これは権利ではないようです。私はこれについて何か指摘していただければ幸いです。私の唯一の欠点は、すべてのものをPythonスクリプトにソケットで送信して挿入を処理させることですが、これはおそらく構文が間違っていると思われます。

+0

のようになります。「これは右ではないようです」。なぜあなたは説明できませんか?あなたは間違いをするのですか、それともレコードが更新されていませんか? – Mr47

答えて

1

構文は、SQLコマンドコンソールまたはVB.NETでこれを入力するかどうかほとんど同じである

INSERT INTO read_initial (`column1`, `column2`,) values (@column1value,@column2value) 
ON DUPLICATE KEY UPDATE `column1` = values(column1) 
+0

"SQL構文に誤りがあります。正しい構文については、 'SET' column1 '= values(' columndata ')の近くで使用するMySQLサーバのバージョンに対応するマニュアルを1行目でチェックしてください。Pythonスクリプトを更新しています同じDBなので、私は.net構文で間違っているものでなければなりません。 – PoweredByCoffee

+0

oopsと余分なSETがひっくり返って – e4c5

+0

これはありがとうございました! – PoweredByCoffee

関連する問題