テーブルに新しいレコードを追加するための正しい構文は次のとおりです
Dim SqlQuery As String = "INSERT INTO presence(id_presence,id,hours,date) " & _
"VALUES (@Id_presence,@Id,@Hours,@Date)"
そしてもちろん、すべてのコマンドを実行する必要があります。そうしないと、コードの無駄な行になります。
パラメーターの作成後に、この行が欠落しています。
SQLcmd.ExecuteNonQuery()
画像から確認することはできませんが、idpresenceがAUTOINCREMENTフィールドである場合は、コマンドとパラメーターを使用してその値を設定するのではなく、データベースに設定させる必要があります。 (複数のユーザーが同時にレコードを挿入すると、キーの重複の問題が発生する可能性があります)
最後に、パラメータのタイプが指定されていないため、基になるデータテーブルスキーマと一致しません。 AddWithValueを使用して、入力テキストボックスの値を正しいデータベースタイプに変換できます
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))