私はVBでupdate Subクラスを作成しています。複数のデータを1回で更新したいので、QueryのUpdateの代わりにinsertクラスを使用しています。Insertコマンドを使用してMySQL DBにアップシュートする
これは、複数の更新データの私の参照です:SQL - Update multiple records in one query
が、私はそれを実行すると、エラーメッセージがあります。
"SQLステートメントの最後にセミコロン(;)がありません。"
しかし、クエリの最後にセミコロンがあります。
Insert into IngredientStock(IngredientID,CategoryId,UnitID,IngredientName,Price)
values(46,2,1,'Beans', 100) ON DUPLICATE KEY
UPDATE
ingredientID= Values(IngredientID),
CategoryID = Values(CategoryID),
UnitID = Values(UnitID),
IngredientName = Values(IngredientName),
Price = values(Price);
はここでSQLクエリを作成するために、私の更新サブクラス
Sub UpdateInfo(ByVal table As String, ByVal PrimaryKey As String, ByVal C1 As String, ByVal C2 As String, ByVal C3 As String, ByVal C4 As String, ByVal Datas As String)
con.Close()
con.Open()
Query = "Insert into " & table & "(" & PrimaryKey & "," & C1 & "," & C2 & "," & C3 & "," & C4 & ") values (" & Datas & ") ON DUPLICATE KEY UPDATE " & PrimaryKey & "= Values(" & PrimaryKey & "), " & C1 & " = values(" & C1 & ")," & C2 & " = values(" & C2 & "), " & C3 & " = values(" & C3 & ")," & C4 & " = values(" & C4 & ");"
cmd = New OleDbCommand(Query, con)
DR = cmd.ExecuteScalar
con.Close()
End Sub
データベースを選ぶ:SQL ServerとMySQLは2つの異なるものです。 – Plutonix
SQL Serverには 'ON DUPLICATE KEY'がありません。これがMySQLの場合は、SQL Serverタグを削除してください。 – cloudsafe
「更新サブクラス」とは何ですか?リテラル値は少し奇妙になりますが、 'ingredientsID = 46、... IngredientName = 'Beans' ...'はうまくいくはずです – Plutonix