プライマリが重複している場合は、すべてのレコードをデータベースにINSERTするだけです。しかし、なぜ私はいつも「SQL文の終わりにセミコロン(;)がありません」というエラーが出ているのか分かりません。私はVB.NETには、SQLステートメントのためのセミカラーがないことを知って、私はそこに何か私のSQLステートメントに間違っていると思う。 「重複キー更新のStudentID = @ StudentID」の部分を削除すると、レコードが挿入されます。ここでは、Accessでその構文を使用することはできません私のコードVB.NETで "INSERT INTOテーブルVALUES()重複キー更新"を使用することはできません
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\1_Project\Project_of_VB_Net\AccessDatabase\StudentDatabase.accdb"
cmd.Connection = cnn
For Each dr In dt.Rows
cmd.CommandText = "INSERT INTO StudentData(ID,StudentName,StudentID,StudentClass) VALUES(@ID,@StudentName,@StudentID,@StudentClass) ON DUPLICATE KEY UPDATE [email protected]"
cmd.Parameters.AddWithValue("@ID", dr("ID"))
cmd.Parameters.AddWithValue("@StudentName", dr("StudentName"))
cmd.Parameters.AddWithValue("@StudentID", dr("StudentID"))
cmd.Parameters.AddWithValue("@StudentClass", dr("StudentClass"))
cnn.Open()
cmd.ExecuteNonQuery()
cnn.Close()
Next
End Sub
Accessでこの構文を使用することはできません – Steve
MS AccessはMySQLではありません – Plutonix