使用MySQL的ASP .NET - DeleteCommand语法不起作用

问题描述:

正在设置将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'。

什么是正确的语法?

此博客碰到了类似的问题:

link text

我需要什么做的是更新的字符串连接到包含“允许用户变量=真”。

我在设置数据源时通过使用“高级”按钮来完成此操作。

删除查询中也需要进行调整是:

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

被覆盖在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