1

这里有什么问题?这就是我在 Subsonic 2 CodingHorror 示例中找到的方法,但不起作用:(

new CodingHorror().Execute("SELECT * FROM product WHERE IdProduct = @IdProduct", 1);

我得到的错误是“<strong>必须定义参数'@IdProduct'”

我正在使用 Subsonic 2.x 和 MySQL!

4

1 回答 1

1

尝试使用?而不是@Product.

new CodingHorror().Execute("SELECT * FROM product WHERE IdProduct = ?", 1);

MySQL 使用不同的(与 SQL Server 相比)语法来引用参数,并且由于您使用的是 CodingHorror(也就是直接将 SQL 通过管道传输到数据库而没有 SubSonic 介入),您可能需要使用本机参数语法RDBMS,在本例中为 MySQL。

查看这篇博文,了解 SQL Server 和 MySQL 之间参数语法差异的更详尽示例。

请注意,我假设 SubSonic 没有做任何偷偷摸摸的事情(例如,扫描 SQL 字符串中的参数名称并根据特定于 DB 的规则替换它们)——我假设 SubSonic 只是按原样传递 SQL 字符串到数据库。

于 2009-12-12T19:14:03.940 回答