2009-07-02 54 views
0

正在設置將MySQL數據庫連接到ASP .NET GridView的SqlDataSource。使用MySQL的ASP .NET - DeleteCommand語法不起作用

delete命令是:

DeleteCommand="DELETE FROM troutetracking WHERE id=?id" 

的刪除參數爲:

<DeleteParameters> 
    <asp:Parameter Name="id" Type="Int32" /> 
</DeleteParameters> 

當我運行在GridView中的刪除鏈接出現以下錯誤信息:

MySql.Data .MySqlClient.MySqlException:必須定義參數'?id'。

什麼是正確的語法?

回答

0

此博客碰到了類似的問題:

link text

我需要什麼做的是更新的字符串連接到包含「允許用戶變量=真」。

我在設置數據源時通過使用「高級」按鈕來完成此操作。

刪除查詢中也需要進行調整是:

DeleteCommand="DELETE FROM troutetracking WHERE [email protected]" 
1

被覆蓋在MSDN's documentation

因爲 使用不同品種的SQL不同的數據庫產品,SQL字符串的 語法取決於 被 當前使用的ADO.NET提供者,這是確定由 ProviderName屬性。如果SQL 字符串是參數化查詢或 命令,則參數 的語法也取決於正在使用的ADO.NET提供程序 。例如,如果 提供程序是System.Data.SqlClient, ,它是類的默認提供程序,則參數的語法 是'@parameterName'。 但是,如果提供程序設置爲 System.Data.OdbcSystem.Data.OleDb,則該參數的佔位符爲'?'。 有關 參數化SQL查詢和 命令的更多信息,請參閱Using Parameters with the SqlDataSource Control

+0

感謝澄清雷米。 令我困惑的是,對於UPDATE查詢,使用了?id語法,但對於DELETE查詢,?id不起作用。 – 2009-07-07 19:59:26