这是我的代码我认为我到目前为止做得很好,但我真的不知道是什么问题。 我正在使用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是错误的形象!
答案 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));
}