使用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'。
什么是正确的语法?
答
此博客碰到了类似的问题:
我需要什么做的是更新的字符串连接到包含“允许用户变量=真”。
我在设置数据源时通过使用“高级”按钮来完成此操作。
删除查询中也需要进行调整是:
DeleteCommand="DELETE FROM troutetracking WHERE [email protected]"
答
被覆盖在MSDN's documentation:
因为 使用不同品种的SQL不同的数据库产品,SQL字符串的 语法取决于 被 当前使用的ADO.NET提供者,这是确定由 ProviderName属性。如果SQL 字符串是参数化查询或 命令,则参数 的语法也取决于正在使用的ADO.NET提供程序 。例如,如果 提供程序是System.Data.SqlClient, ,它是类的默认提供程序,则参数的语法 是'@parameterName'。 但是,如果提供程序设置为 System.Data.Odbc或 System.Data.OleDb,则该参数的占位符为'?'。 有关 参数化SQL查询和 命令的更多信息,请参阅Using Parameters with the SqlDataSource Control。
感谢澄清雷米。 令我困惑的是,对于UPDATE查询,使用了?id语法,但对于DELETE查询,?id不起作用。 – 2009-07-07 19:59:26