Der Parameter kann in Insight.Database nicht gebunden werden

dapper insight.database micro-orm oledb

Frage

Ich versuche, einen Parameter an eine SQL-Abfrage in meinem Repository zu binden, aber einen Fehler zu haben

public IList<Movie> FindMovieById(int movieId)
{
   return Database.Connection().QuerySql<Movie>("select * from myDB.movies where ID=?", new { movieId });
}

Ich bekomme eine OleDb-Ausnahme.

SQL0313: Anzahl der Hostvariablen nicht gültig. Ursache . . . . . : Die Anzahl der Hostvariablen oder Einträge in einem SQLDA- oder Deskriptorbereich, der in einer EXECUTE- oder OPEN-Anweisung angegeben wurde, stimmt nicht mit der Anzahl der Parametermarkierungen in der vorbereiteten SQL-Anweisung S000001 überein. Wenn der Name der Anweisung * N ist, wurde die Anzahl der Hostvariablen oder Einträge in einem SQLDA- oder Deskriptorbereich in einer OPEN-Anweisung angegeben und entspricht nicht der Anzahl der in der DECLARE CURSOR-Anweisung für den Cursor C000001 angegebenen Hostvariablen. Wiederherstellung . . . : Ändern Sie die Anzahl der in der USING-Klausel angegebenen Hostvariablen oder die Anzahl der Einträge im SQLDA- oder Deskriptorbereich so, dass sie der Anzahl der Parametermarkierungen in der vorbereiteten SQL-Anweisung oder der Anzahl der Hostvariablen in der DECLARE CURSOR-Anweisung entsprechen. Vorkompilieren Sie das Programm erneut.

Ich habe benutzt ? für die Parameterbindung, da OleDb Positionsparameter hat, die mit '?' eher der '@parameterName' .

Jede Hilfe wird geschätzt.

Beliebte Antwort

Mit Insight.Database können Sie das versuchen?

return Database.Connection().QuerySql<Movie>(
  "select * from myDB.movies where ID=@movieId", 
  new { movieId = movieId });


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow