开始时的C#.net错误(?)(MySQL)
我得到的错误是在我调用时指向的 命令BeginTransaction(隔离级别iso) 此方法称为用户尝试登录到登录网页。如果接受HTML5客户端输入验证且两个密码字段匹配,则调用此方法,并在空文本框中填充空格(“”) 这是我的高级项目,请帮忙开始时的C#.net错误(?)(MySQL),c#,mysql,parameters,transactions,C#,Mysql,Parameters,Transactions,我得到的错误是在我调用时指向的 命令BeginTransaction(隔离级别iso) 此方法称为用户尝试登录到登录网页。如果接受HTML5客户端输入验证且两个密码字段匹配,则调用此方法,并在空文本框中填充空格(“”) 这是我的高级项目,请帮忙 //this method adds a record to the table customers public Boolean addUser(String email, String password, String name,
//this method adds a record to the table customers
public Boolean addUser(String email, String password, String name, String phone, String company, String address, String city, String state, String zip)
{
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand cmd = conn.CreateCommand();
MySqlTransaction trans = conn.BeginTransaction(IsolationLevel.Serializable);
cmd.Connection = conn;
cmd.Transaction = trans;
try {
conn.Open();
//these are the mandatory fields to be inserted)
string sql = "Insert into customers(name,password,phone,email) values (?name,?password,?phone,?email)";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("?name", name);
cmd.Parameters.AddWithValue("?email", email);
cmd.Parameters.AddWithValue("?phone", phone);
cmd.Parameters.AddWithValue("?password", password);
cmd.ExecuteNonQuery();
trans.Commit();
conn.Close();
conn = new MySqlConnection(connString);
cmd = conn.CreateCommand();
cmd.Connection = conn;
//these fields are optional and if input is empty they are being passed as " "
sql = "Update customers Set username = ?company, address=?address ,city=?city, state=?state, zipcode=?zip where customerID=MAX(customerID)";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("?company", company);
cmd.Parameters.AddWithValue("?address", address);
cmd.Parameters.AddWithValue("?city", city);
cmd.Parameters.AddWithValue("?state", state);
cmd.Parameters.AddWithValue("?zip", zip);
cmd.ExecuteNonQuery();
conn.Close();
}
catch (MySqlException ex)
{
trans.Rollback();
errorcode = ex.Number;
MessageBox.Show("7. Sign Up Failure\nError code: " + getError(), "Sign Up failure", MessageBoxButtons.OK, MessageBoxIcon.Error);
conn.Close();
return false;
}
return true;
}
更新:
如果我不包括事务方法,那么我将在执行第二个数据库事务(cmd.ExecuteNonQuery()时收到错误
最好实现IsolationLEvel序列化,因为它可以阻止其他数据库事务同时发生。但是现在我只是想让用户注册。异常信息是什么?你说错误是由
cmd.BeginTransaction(IsolationLevel iso)引起的
但您包含的代码中没有这一点。还可以包含包含该行的代码吗?MySqlTransaction trans=conn.BeginTransaction(IsolationLevel.Serializable);异常消息是可单击的文本。如果单击它,您将看到包含错误的框的图像,这是您的代码显示的消息框和错误消息。ex.Message
的值是多少?getError
方法的代码是什么?