2015-01-17 29 views
-1

我想存儲信息到一個MySQL數據庫,但由於某種原因,它不適合我。不能保存信息到MySQL數據庫

Dim connString As String = "server=sql3.freemysqlhosting.net; userid=Censored;password=Censored;database=sql364455" 
Dim conn As New MySqlConnection(connString) 
Dim cmd As New MySqlCommand() 
Try 
    conn.Open() 
    cmd.Connection = conn 
    cmd.CommandText = "INSERT INTO accounts (`user_num`, `username`, `password`) values (@1,@2,@3)" 
    MsgBox("1") 
    cmd.Parameters.AddWithValue("@1", TextBox1.Text) 
    cmd.Parameters.AddWithValue("@2", TextBox2.Text) 
    cmd.Parameters.AddWithValue("@3", TextBox3.Text) 
    MsgBox("2") 
    cmd.ExecuteNonQuery() 
    MsgBox("3") 
    MessageBox.Show("User Profile Created!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) 
    conn.Close() 
Catch ex As Exception 
End Try 

根據此代碼,消息框1和2彈出,但3不是。

有什麼想法?提前致謝。

+2

你爲什麼不例外上添加一個斷點,看看它說什麼? – dotnetom

+0

我很好,但你能解釋如何做到這一點? – WoeIsMe

+0

你不需要反斜槓列名,但密碼是一個保留字,將需要轉義:'[密碼]' – Plutonix

回答

0

@WoeIsMe Plutonix已經告訴過你如何正確寫入它(把它放在括號中:[password])。而且,只是和建議;如果你已經使用MsgBox作爲調試工具,那麼總是在catch塊中放置另一個MsgBox(ex.ToString()),所以你會知道它爲什麼不起作用。 - 喬希部分8

我把一個MsgBox異常塊,找出是什麼問題,我發現,它並沒有工作,因爲:「重複項‘0’關鍵‘主要’ 「 - 它沒有工作,因爲已經有一個這個號碼的用戶。

非常感謝所有幫助過我的人。

我用來檢測該問題的代碼:

Dim connString As String = "server=sql3.freemysqlhosting.net; userid=username;password=password;database=sql364455" 
    Dim conn As New MySqlConnection(connString) 
    Dim cmd As New MySqlCommand() 
    Try 
     conn.Open() 
     cmd.Connection = conn 
     cmd.CommandText = "INSERT INTO accounts (user_num, username, password) values (@1,@2,@3)" 
     MsgBox("1") 
     cmd.Parameters.AddWithValue("@1", TextBox1.Text) 
     cmd.Parameters.AddWithValue("@2", TextBox2.Text) 
     cmd.Parameters.AddWithValue("@3", TextBox3.Text) 
     MsgBox("2") 
     cmd.ExecuteNonQuery() 
     MsgBox("3") 
     MessageBox.Show("User Profile Created!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) 
     conn.Close() 
    Catch ex As Exception 
     ' here 
     MsgBox(ex.Message) 
    End Try