Mysql
 sql >> Base de données >  >> RDS >> Mysql

Commande d'insertion mySQL VB.NET

La syntaxe correcte pour ajouter un NOUVEL enregistrement à votre table devrait être

 Dim SqlQuery As String = "INSERT INTO presence(id_presence,id,hours,date) " & _
                          "VALUES (@Id_presence,@Id,@Hours,@Date)"

Et, bien sûr, chaque commande doit être exécutée sinon ce ne sont que des lignes de code inutiles.
Il vous manque cette ligne après la création des paramètres.

  SQLcmd.ExecuteNonQuery()

À partir de votre image, il n'est pas possible d'être sûr, mais si l'idpresence est un champ AUTOINCREMENT, vous ne devriez pas essayer de définir sa valeur avec votre commande et votre paramètre, mais laissez la base de données le faire pour vous. (Des problèmes de clés en double peuvent survenir si plusieurs utilisateurs insèrent des enregistrements en même temps)

Enfin, le type de vos paramètres n'est pas spécifié et ne correspond donc pas au schéma de table de données sous-jacent. Vous pouvez utiliser AddWithValue et convertir les valeurs de la zone de texte d'entrée au type de base de données correct

SQLcmd.Parameters.AddWithValue("@Id_presence", Convert.ToInt32(TextBox1.Text))
SQLcmd.Parameters.AddWithValue("@Id", Convert.ToInt32(TextBox2.Text))
SQLcmd.Parameters.AddWithValue("@Hours", Convert.ToInt32(TextBox3.Text))
SQLcmd.Parameters.AddWithValue("@Date", Convert.ToDateTime(TextBox4.Text))