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

时间:2009-07-02 20:09:44

标签: asp.net mysql

设置将MySQL数据库连接到ASP .NET GridView的SqlDataSource。

删除命令是:

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

Delete参数是:

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

当我在Gridview上运行删除链接时,会出现以下错误消息:

MySql.Data.MySqlClient.MySqlException:必须定义参数'?id'。

正确的语法是什么?

2 个答案:

答案 0 :(得分:1)

MSDN's documentation中涵盖了这一点:

  

因为不同的数据库产品   使用不同种类的SQL,   SQL字符串的语法取决于   当前的ADO.NET提供商   使用,由...识别   ProviderName财产。如果是SQL   string是参数化查询或   命令,参数的语法   还取决于ADO.NET提供程序   正在使用。例如,如果   提供者是System.Data.SqlClient,   这是默认的提供商   SqlDataSource类,语法   参数是'@parameterName'。   但是,如果提供程序设置为   System.Data.Odbc或   System.Data.OleDb,   参数的占位符是'?'。   有关的更多信息   参数化的SQL查询和   命令,请参阅Using Parameters with the SqlDataSource Control

答案 1 :(得分:0)

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

link text

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

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

还需要将删除查询调整为:

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