Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
开始时的C#.net错误(?)(MySQL)_C#_Mysql_Parameters_Transactions - Fatal编程技术网

开始时的C#.net错误(?)(MySQL)

开始时的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,

我得到的错误是在我调用时指向的

命令BeginTransaction(隔离级别iso)

此方法称为用户尝试登录到登录网页。如果接受HTML5客户端输入验证且两个密码字段匹配,则调用此方法,并在空文本框中填充空格(“”)

这是我的高级项目,请帮忙

     //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
方法的代码是什么?