【问题标题】:Can't save info to mysql database无法将信息保存到 mysql 数据库
【发布时间】:2015-01-17 16:22:07
【问题描述】:

我正在尝试将信息存储到 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 没有。

有什么想法吗?提前致谢。

【问题讨论】:

  • 为什么不在异常上加一个断点,看看它说了什么?
  • 我很抱歉,你能解释一下怎么做吗?
  • 列名不需要反引号,但密码是保留字,需要转义:[password]
  • 另外,MsgBox 是一个糟糕的调试工具
  • 我将这一行更改为: cmd.CommandText = "INSERT INTO accounts (user_num, username, password) values (@1,@2,@3)" 但它仍然无法正常工作。顺便说一句,谢谢你的建议。

标签: mysql database vb.net connection-string


【解决方案1】:

@WoeIsMe Plutonix 已经告诉你如何正确地写它(把它放在括号里:[密码])。而且,公正和建议;如果您已经在使用 MsgBox 作为调试工具,请始终在异常 MsgBox(ex.ToString()) 的 catch 块中放置另一个,这样您就会知道它为什么不起作用。 – 乔什第 8 部分

我在异常块上放了一个 msgbox 以找出问题所在,但我发现它不起作用,因为:“重复条目 '0' for key 'PRIMARY'” - 它不起作用,因为已有用户使用此号码。

非常感谢所有帮助过我的人。

我用来检测问题的代码:

    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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2012-12-18
    相关资源
    最近更新 更多