2012-04-21 16 views
0

データを更新しようとしています。私はパラメータ化されたクエリを使用するたびに私にエラーFatal Error Encountered during command executionを与えます。ここでUPDATE文のC#でのSQLパラメータの問題

が私のコードです:

public void updateAccount(Int32 cashierid, string cashieruser, string isadmin, string cashierfname, string cashiermname, string cashierlname, string cashierpass) 
{ 
    con.ConnectionString = conString;  
    String sql = "UPDATE cashieraccount SET cashieruser = ?cashieruser, cashierpass = ?cashierpass, isadmin = ?isadmin, cashierfname = ?cashierfname, cashiermname = ?cashiermname, cashierlname = ?cashierlname"; 
    sql += "WHERE cashierid = ?cashierid"; 
    try 
    { 
     con.Open(); 
     MySqlCommand cmd = new MySqlCommand(sql, con); 
     cmd.Parameters.AddWithValue("?cashieruser", cashieruser); 
     cmd.Parameters.AddWithValue("?cashierpass", cashierpass); 
     cmd.Parameters.AddWithValue("?isadmin", isadmin); 
     cmd.Parameters.AddWithValue("?cashierfname", cashierfname); 
     cmd.Parameters.AddWithValue("?cashiermname", cashiermname); 
     cmd.Parameters.AddWithValue("?cashierlname", cashierlname); 
     cmd.Parameters.AddWithValue("?cashierid", cashierid); 
     cmd.ExecuteNonQuery(); **//Fatar Error Encountered during command execution** 
    } 
    finally 
    { 
     con.Close(); 
    } 
} 

誰もが何か提案がありますか?

答えて

4

私はwhere句の前に、あなたのパラメータの後ろに空白が欠落しています:

String sql = "UPDATE cashieraccount SET cashieruser = ?cashieruser, cashierpass = ?cashierpass, isadmin = ?isadmin, cashierfname = ?cashierfname, cashiermname = ?cashiermname, cashierlname = ?cashierlname"; 
sql += " WHERE cashierid = ?cashierid"; 
// here^
+0

はあなたの先生ありがとうございました。.. – Bon