piece
piece

Reputation: 19

SQL "successful" but not updating the database?

lblMessage says that it's registered, however when I check my database there's no record.

Below is my code:

Try
    con = New MySqlConnection("Server=localhost;Database;Uid=root;Pwd=;")
    Using cmd = New MySqlCommand("START TRANSACTION; INSERT INTO account_table(acc_user, acc_pass, acc_mail, acc_ques, acc_ans, acc_priv) VALUES( @p3, @p4, @p5, @p6, @p7, 'user'); SELECT LAST_INSERT_ID(acc_id) FROM account_table; INSERT INTO patient_table(acc_id, pat_fname, pat_lname) VALUES (LAST_INSERT_ID(), @p1, @p2); COMMIT;", con)
        cmd.Parameters.AddWithValue("@p1", firstname.Value.ToString)
        cmd.Parameters.AddWithValue("@p2", lastname.Value.ToString)
        cmd.Parameters.AddWithValue("@p3", username.Value.ToString)
        cmd.Parameters.AddWithValue("@p4", password.Value.ToString)
        cmd.Parameters.AddWithValue("@p5", email.Value.ToString)
        cmd.Parameters.AddWithValue("@p6", quest.Value.ToString)
        cmd.Parameters.AddWithValue("@p7", answer.Value.ToString)
        con.Open()
    End Using
    lblMessage.Text = "Registered!"
Catch ex As Exception
    lblMessage.Text = "The username or email appears to be taken."
End Try
con.Close()

No error appears so I'm not quite sure what is wrong

Upvotes: 0

Views: 53

Answers (1)

Peter Pei Guo
Peter Pei Guo

Reputation: 7870

You never executed the statement. You need:

con.Open()
cmd.ExecuteNonQuery()
con.Close()

Upvotes: 2

Related Questions