MS Access-Fehler: Die SELECT-Anweisung schließt ein reserviertes Wort oder einen Argumentnamen, dass ist falsch geschrieben oder fehlt, oder die Zeichensetzung falsch ist

[Update: Die Abfrage funktioniert, wenn ich fest in die Parameter - also es hat zu tun mit der Art, wie ich bin, hinzufügen von Parametern für die Abfrage]

Für das Leben von mir, ich kann nicht herausfinden, was das problem hier ist.

Hier ist die Abfrage übergeben wird, um das datareader-Objekt:

    SELECT * FROM (SELECT TOP ? StartDate, [ID] FROM
    (SELECT TOP ? StartDate, [ID] FROM Story 
    ORDER BY StartDate DESC, [ID] DESC) AS foo 
    ORDER BY StartDate ASC, [ID] ASC) AS bar 
    INNER JOIN Story AS t ON bar.ID = t.ID 
    ORDER BY bar.StartDate DESC, bar.[ID] DESC

Die Parameter in der folgenden Reihenfolge:

var pNumToRetrieve = new OleDbParameter("", OleDbType.Integer) {Value = numToGet};
var pResultSet = new OleDbParameter("", OleDbType.Integer) {Value = resultSet};

_cmd.Parameters.Add(pNumToRetrieve);
_cmd.Parameters.Add(pResultSet);

Wenn ich geben Sie diese Abfrage in access direkt funktioniert es Prima. Aber bei der Ausführung der Abfrage aus ASP.NET, bekomme ich die folgende Fehlermeldung:

Die SELECT-Anweisung schließt ein reserviertes Wort oder einen Argumentnamen, dass ist falsch geschrieben oder fehlt, oder die Zeichensetzung falsch ist.

Was mache ich falsch?

Dank,

Adam

  • Das problem ist mit der Ausführung des string in ASP.NET. Also die benötigten Tags und Fähigkeiten anzuwenden wäre ASP.NET. ???
  • Könnten Sie das näher? Die Abfrage, die ich eingefügt oben ist entnommen aus dem debugger asp.net - dies ist der exakte Wert/string wird übergeben.
  • Ich glaube Sie meinten, dass Ihre Frage hätte tagged ASP.NET nicht SQL. Aber von Ihr akzeptiert die Antwort es scheint, ist dies nicht wahr.
  • Ah, ich sehe. Ich änderte den tag. Danke -- Adam
InformationsquelleAutor Adam | 2009-07-15
Schreibe einen Kommentar