编译程序时,我没有收到任何错误,但是只要我单击“保存”按钮 我收到'InvalidOperationException未处理'。 cmd.ExecuteNonQuery(); 然后突出显示,我花了一段时间在这上面,没有运气。希望你能帮忙。
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();
}
答案 0 :(得分:7)
在执行命令之前为您的命令分配连接:
cmd.Connection = con;
删除对BeginExecuteNonQuery
的调用。它启动异步执行,然后直接启动同步执行。您的代码的结构方式,您希望使用同步方式。
答案 1 :(得分:1)
通过
定义命令的连接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”,不要在列名中使用空格。