Je veux juste INSERT tout enregistrement à la base de données si ont primaire dupliqué, il mettra à jour primaire. Mais je ne sais pas pourquoi il dit toujours l'erreur "Point-virgule manquant (;) à la fin de l'instruction SQL.". Je sais que dans VB.NET il n'y a pas de semicolor pour l'instruction sql, je pense qu'il y a quelque chose qui ne va pas dans mon instruction sql. lorsque je supprime une partie "ON DUPLICATE KEY UPDATE StudentID = @ StudentID" Il insère l'enregistrement OK. S'il vous plaît me signaler si je manqué quelque choseImpossible d'utiliser "INSERT INTO table VALUES() SUR DUPLICATE KEY UPDATE" dans VB.NET
Voici mon code
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
Vous ne pouvez pas utiliser cette syntaxe avec Access – Steve
MS Access n'est pas MySQL – Plutonix