cmdInsert.CommandText = "INSERT INTO login (PersonelName,Position,Username,Password,Repassword,PIN) VALUES (@PersonelName,@Position,@Username,@Password,@Repassword,@PIN)"
cmdInsert.Parameters.AddWithValue("@PersonelName", TextBoxX1.Text)
cmdInsert.Parameters.AddWithValue("@Position", TextBoxX2.Text)
cmdInsert.Parameters.AddWithValue("@Username", TextBoxX3.Text)
cmdInsert.Parameters.AddWithValue("@Password", TextBoxX4.Text)
cmdInsert.Parameters.AddWithValue("@Repassword", TextBoxX5.Text)
cmdInsert.Parameters.AddWithValue("@PIN", TextBoxX6.Text)
The ?'s are the actual names of the parameters, not the column names. You need to tell the parameters where they go, since the command doesn't know anything about the schema of your database.