我试图使用C#文本框形式在mysql数据库中插入数据,但我总是遇到错误?

时间:2013-03-30 07:27:20

标签: c# mysql insert

这是我的代码我认为我到目前为止做得很好,但我真的不知道是什么问题。 我正在使用txtbox为用户名和密码创建一个注册表单我用MD5加密密码,我尝试删除MD5加密,认为它可能是prtoblem但仍然在我删除它时问题仍然存在。

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;
        }

你可以看到我用对话框捕获错误,所以基本上如果它将无法插入或连接到数据库,消息框显示“INSERT Record Error!”。顺便说一句,只有在插入数据库时​​,visual studio中没有错误。

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

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

也许是一个半字节的逗号,我无能为力。

嗨!这里的rhughes是错误的形象!

enter image description here

3 个答案:

答案 0 :(得分:3)

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

string query = "INSERT INTO register (username,password) " +
                      "VALUES(" +
                       "'" + txtUser.Text + "'," +
                       "MD5('" + txtPass.Text +"'))";
                                                  ^ HERE

答案 1 :(得分:1)

SQL不正确。你有两个开头“(”,只有一个结束。

答案 2 :(得分: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));
}