【发布时间】:2014-01-23 10:12:37
【问题描述】:
我正在尝试将参数绑定到存储库中的 SQL 查询,但出现错误
public IList<Movie> FindMovieById(int movieId)
{
return Database.Connection().QuerySql<Movie>("select * from myDB.movies where ID=?", new { movieId });
}
我得到一个 OleDb 异常。
SQL0313:主机变量数无效。 原因 。 . . . . : 在 EXECUTE 或 OPEN 语句中指定的 SQLDA 或描述符区域中的主变量或条目的数量与在准备好的 SQL 语句 S000001 中指定的参数标记的数量不同。如果语句名称为 *N,则在 OPEN 语句中指定了 SQLDA 或描述符区域中的主变量或条目数,并且与游标 C000001 的 DECLARE CURSOR 语句中指定的主变量数不同。恢复 。 . . : 将 USING 子句中指定的主变量数或 SQLDA 或描述符区域中的条目数更改为等于准备好的 SQL 语句中的参数标记数或 DECLARE CURSOR 语句中的主变量数。再次预编译程序。
我用过?用于参数绑定,因为 OleDb 具有由 '?' 而不是 '@parameterName' 表示的位置参数。
感谢任何帮助。
【问题讨论】:
-
您是否尝试过使用@parameterName 语法?
-
@sirchristian 是的,它不适用于@
-
您能否发布不适用于@parameterName 的C#?
标签: oledb dapper micro-orm insight.database