"在mySql中执行命令期间遇到致命错误"

时间:2015-11-17 07:27:32

标签: c# mysql

enter image description here 我需要在aster_user页面中查看此数据到c#

enter image description here 当我点击编辑链接时,我得到更新表格来编辑数据库中的datagridview行。

我在C#中遇到MySQL问题。我想在我的MySQL数据库中更新数据。

        String MyCon =SERVER=********** +

        DATABASE=asterisk +

         UID=root +

         PASSWORD=**** + Convert Zero Datetime = True";

 private void btnsubmit_Click(object sender, EventArgs e)
 {

        MySqlConnection con = new MySqlConnection(MyCon);

        con.Open();

        string query = "UPDATE userid,password,role,first_name,last_name,user_group,user_level,active FROM aster_users" +
                       "SET password=@password,role=@role,first_name=@first_name,last_name=@last_name,user_level=@user_level,user_group=@user_group,active=@active" +
                       "WHERE userid=userid";
       MySqlCommand cmd = new MySqlCommand(query, con);
        cmd.Parameters.AddWithValue("@pasword", txtconformpassword.Text);
        cmd.Parameters.AddWithValue("@role", cmbrole.Text);
        cmd.Parameters.AddWithValue("@first_name", txtfirstname.Text);
        cmd.Parameters.AddWithValue("@last_name", txtlastname.Text);
        cmd.Parameters.AddWithValue("@user_group", cmbUser1.Text);
        cmd.Parameters.AddWithValue("@user_level", cmbuser.Text);
        cmd.Parameters.AddWithValue("@active", cmbstatus.Text);
        cmd.ExecuteNonQuery();
        MessageBox.Show("updated......");
        con.Close();
    }

帮助我..我在cmd.ExecuteNonQuery()中执行命令时遇到了致命错误;

1 个答案:

答案 0 :(得分:0)

对于我未经训练的眼睛,sql语句的构造看起来很可疑

string query = "UPDATE userid,password,role,first_name,last_name,user_group,user_level,active FROM aster_users" +
   "SET password=@password,role=@role,first_name=@first_name,last_name=@last_name,user_level=@user_level,user_group=@user_group,active=@active" +
   "WHERE userid=userid";

因为它是一个mySQL数据库,所以应该能够在字段名称周围使用反引号,在行的结尾/开头有不一致的空格,where clause似乎需要一个变量@userid但是声明了作为一个字符串?

string query = "UPDATE `aster_users` " +
   "SET `password`=@password, `role`=@role, `first_name`=@first_name, `last_name`=@last_name, `user_level`=@user_level, `user_group`=@user_group, `active`=@active " +
   "WHERE `userid`=@userid";