2012-12-18 47 views
0

我用這個代碼,但它顯示致命的錯誤,並沒有提供任何有關錯誤的信息。mysql致命錯誤,但我認爲我做了一切正確

命令執行過程中遇到致命錯誤。

MySql.Data.MySqlClient.MySqlException由用戶代碼未處理消息=命令執行期間遇到致命錯誤。 Source = MySql.Data ErrorCode = -2147467259 Number = 0 StackTrace:

這是我的代碼。我沒有顯示「連接」代碼,因爲我從外面打電話。它與以前的查詢方法很好地工作。

public int insertRateToDB(string tableName, double rate, int cid, int subGroup) 
{   
    sql = "UPDATE " + tableName + " SET rate = @rate, subGroup = @subGroup WHERE id = @cid;"; 
    MySqlCommand cmd = new MySqlCommand(sql,connect); 
    cmd.Prepare(); 
    cmd.Parameters.AddWithValue("@percent", rate); 
    cmd.Parameters.AddWithValue("@subGroup", subGroup); 
    cmd.Parameters.AddWithValue("@cid", cid); 
    int result = cmd1.ExecuteNonQuery(); 
    return result; 
} 
+1

@rate沒有被定義爲您的參數 – Boomer

+0

使用@率ISO @%的 –

回答

4

您需要@rate參數列表中未@percent

//cmd.Parameters.AddWithValue("@percent", rate); 
cmd.Parameters.AddWithValue("@rate", rate); 
+0

我現在改爲「@rate」之一,我什麼都沒有發生,原來的SQL錯誤? @kaf – riseres

+0

@riseres:在設置Commandtext和Parameters之後調用Prepare()方法或者嘗試不用它請閱讀[MSDN](http://msdn.microsoft.com/zh-cn/library/system .data.sqlclient.sqlcommand.prepare.aspx)鏈接以獲取更多詳細信息 – Kaf

相關問題