C# 未处理InvalidOperationException
我编译程序时没有收到错误,但是只要单击“保存”按钮 我收到“InvalidOperationException未处理”。cmd.ExecuteNonQuery();然后突出显示,我花了一段时间在这上面,没有运气。希望你能帮忙C# 未处理InvalidOperationException,c#,.net,mysql,sql,ado.net,C#,.net,Mysql,Sql,Ado.net,我编译程序时没有收到错误,但是只要单击“保存”按钮 我收到“InvalidOperationException未处理”。cmd.ExecuteNonQuery();然后突出显示,我花了一段时间在这上面,没有运气。希望你能帮忙 private void save_Click(object sender, EventArgs e) { MySqlConnection con = new MySqlConnection("host=" ";user="";password=""; databa
private void save_Click(object sender, EventArgs e)
{
MySqlConnection con = new MySqlConnection("host=" ";user="";password=""; database="" ;");
con.Open();
MySqlCommand cmd = new MySqlCommand("INSERT INTO Staff (username, password, FirstName, SecondName, Phone, Email, Role, Phone 2, Fax)" + "values" + "("+username+","+password+","+Fname+","+Lname+","+Phone+","+email+","+role+","+Phone2+","+Fax+")");
cmd.BeginExecuteNonQuery();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Data Inserted");
con.Close();
}
在执行命令之前,将连接分配给命令:
cmd.Connection = con;
并删除对
BeginExecutenQuery
的调用。它启动异步执行,然后直接启动同步执行。按照代码的结构方式,您希望使用同步方式。通过定义命令的连接
cmd.Connection = con;
此外,您的查询似乎不正确
MySqlCommand cmd = new MySqlCommand("INSERT INTO Staff (username, password, FirstName, SecondName, Phone, Email, Role, Phone 2, Fax)"
+"values" +"('"+username+"','"+password+"','"+Fname+"','"+Lname+"','"+Phone+"','"+email+"','"+role+"','"+Phone2+"','"+Fax+"')");
您需要做的另一件事是重命名列名“Phone 2”,不要在列名中使用空格。您的
MySqlCommand
对象如何知道MySqlConnection
;)?在查询中使用参数,可以避免sql注入。除了System.Windows.Forms.TextBox之外,所有操作都正常,每个条目前都有文本!!但它插入了太多的感谢。所有的工作…除了System.Windows.Forms.TextBox,每个条目前的文本!!乔·贝尔:如果查询中使用的变量是文本框,请将查询改为使用.Text
,例如用户名.Text
。