1

这是我的代码,我认为到目前为止我做得对,但我真的不知道问题出在哪里。我正在使用 txtbox 为用户名和密码制作注册表我用 MD5 加密密码,我尝试删除 MD5 加密,认为它可能是问题,但是当我删除它时,问题仍然存在。

ApareceCrudLib a = new ApareceCrudLib("localhost", "root", "",  "cashieringdb");

            string query = "INSERT INTO register (username,password) " +
                          "VALUES(" +
                           "'" + txtUser.Text + "'," +
                           "MD5('" + txtPass.Text +"')";
            a.mysqlInsert(query);
            MessageBox.Show("Account has been registered!");
            this.Close();

这是我的课程 ApareceCrudLib for mysqlInsert 的代码

 public void mysqlInsert(string query)
        {
            try
            {
                if (this.Open())
                {
                    MySqlCommand cmd = new MySqlCommand(query, conn);
                    cmd.ExecuteNonQuery();
                    this.Close();
                    System.Windows.Forms.MessageBox.Show("Record Inserted!");
                }
            }
            catch { this.Close(); System.Windows.Forms.MessageBox.Show("INSERT Record Error!"); }
            return;
        }

如您所见,我通过对话框捕获了错误,因此基本上如果它无法插入或连接到数据库,则消息框将显示“插入记录错误!”。顺便说一句,Visual Studio 中只有在插入数据库时​​没有错误。

我认为插入数据库字符串查询代码中某处的错误 = "INSERT

INTO register (username,password) " +
                              "VALUES(" +
                               "'" + txtUser.Text + "'," +
                               "MD5('" + txtPass.Text +"')";

也许一个逗号一个分号一个句号我一无所知。

嗨!rhughes 这是错误的图像!

在此处输入图像描述

4

3 回答 3

3

您必须在字符串查询中添加“)”。

string query = "INSERT INTO register (username,password) " +
                      "VALUES(" +
                       "'" + txtUser.Text + "'," +
                       "MD5('" + txtPass.Text +"'))";
                                                  ^ HERE
于 2013-03-30T07:35:17.440 回答
1

SQL 不正确。您有两个开头的“(”,只有一个结尾。

于 2013-03-30T07:35:23.680 回答
1

为了查看实际错误,请尝试以下操作:

try
{
    if (this.Open())
    {
        MySqlCommand cmd = new MySqlCommand(query, conn);
        cmd.ExecuteNonQuery();
        this.Close();
        System.Windows.Forms.MessageBox.Show("Record Inserted!");
    }
}
catch(Exception ex)
{
    this.Close();
    System.Windows.Forms.MessageBox.Show(String.Format("INSERT Record Error! {0}", ex.Message));
}
于 2013-03-30T07:37:18.183 回答