我试图将参数绑定到我的存储库中的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'
。
任何帮助表示赞赏。
使用Insight.Database可以尝试这个吗?
return Database.Connection().QuerySql<Movie>(
"select * from myDB.movies where ID=@movieId",
new { movieId = movieId });