这里有什么问题?这就是我在 Subsonic 2 CodingHorror 示例中找到的方法,但不起作用:(
new CodingHorror().Execute("SELECT * FROM product WHERE IdProduct = @IdProduct", 1);
我得到的错误是“<strong>必须定义参数'@IdProduct'”
我正在使用 Subsonic 2.x 和 MySQL!
这里有什么问题?这就是我在 Subsonic 2 CodingHorror 示例中找到的方法,但不起作用:(
new CodingHorror().Execute("SELECT * FROM product WHERE IdProduct = @IdProduct", 1);
我得到的错误是“<strong>必须定义参数'@IdProduct'”
我正在使用 Subsonic 2.x 和 MySQL!
尝试使用?
而不是@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 字符串到数据库。