Mysql
 sql >> Datenbank >  >> RDS >> Mysql

VB.NET mySQL-Einfügebefehl

Die korrekte Syntax zum Hinzufügen eines NEUEN Datensatzes zu Ihrer Tabelle sollte

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

Und natürlich sollte jeder Befehl ausgeführt werden, sonst sind es nur nutzlose Codezeilen.
Diese Zeile fehlt Ihnen nach der Erstellung der Parameter.

  SQLcmd.ExecuteNonQuery()

Von Ihrem Bild aus ist es sicher nicht möglich, aber wenn die idpresence ein AUTOINCREMENT-Feld ist, sollten Sie nicht versuchen, seinen Wert mit Ihrem Befehl und Parameter festzulegen, sondern die Datenbank dies für Sie tun lassen. (Probleme mit doppelten Schlüsseln können auftreten, wenn mehr als ein Benutzer gleichzeitig Datensätze einfügt)

Als letztes wird der Typ Ihrer Parameter nicht angegeben, sodass sie nicht mit dem zugrunde liegenden Datentabellenschema übereinstimmen. Sie könnten AddWithValue verwenden und die eingegebenen Textfeldwerte in den richtigen Datenbanktyp umwandeln

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))