Cela signifie que le nombre de valeurs spécifiées dans votre VALUES
clause sur INSERT
l'instruction n'est pas égal au nombre total de colonnes de la table. Vous devez spécifier le nom de la colonne si vous n'essayez d'insérer que sur les colonnes sélectionnées.
Un autre, puisque vous utilisez ADO.Net
, toujours paramétré votre requête pour éviter l'SQL Injection
. Ce que vous faites en ce moment, c'est que vous vainquez l'utilisation de sqlCommand
.
ex
Dim query as String = String.Empty
query &= "INSERT INTO student (colName, colID, colPhone, "
query &= " colBranch, colCourse, coldblFee) "
query &= "VALUES (@colName,@colID, @colPhone, @colBranch,@colCourse, @coldblFee)"
Using conn as New SqlConnection("connectionStringHere")
Using comm As New SqlCommand()
With comm
.Connection = conn
.CommandType = CommandType.Text
.CommandText = query
.Parameters.AddWithValue("@colName", strName)
.Parameters.AddWithValue("@colID", strId)
.Parameters.AddWithValue("@colPhone", strPhone)
.Parameters.AddWithValue("@colBranch", strBranch)
.Parameters.AddWithValue("@colCourse", strCourse)
.Parameters.AddWithValue("@coldblFee", dblFee)
End With
Try
conn.open()
comm.ExecuteNonQuery()
Catch(ex as SqlException)
MessageBox.Show(ex.Message.ToString(), "Error Message")
End Try
End Using
End USing
PS :Veuillez remplacer les noms de colonne spécifiés dans la requête par la colonne d'origine trouvée dans votre table.