OleDbCommand kann diesen Befehl nicht ausführen, warum?
-
19-09-2019 - |
Frage
erstelle ich eine Tabelle mit dem Namen "PathTable" in einer MS-Access DB. Die Tabelle ist wie folgt:
------------------------------
| IP | Input | Output |
------------------------------
| 127.0.0.1 | XXXXX | YYYYYY |
------------------------------
Wenn ich programmierter diese
String CommandString = "SELECT Input, Output FROM PathTable WHERE IP = '127.0.0.1'";
OleDbCommand CommandObj = new OleDbCommand( CommandString, m_Connection );
OleDbDataReader ReaderObj = CommandObj.ExecuteReader();
Sie den Code immer OleDbException werfen, und das ist E_FAIL Errordescription (0x80004005),
Aber wenn ich ersetzt den befehl mit
SELECT * FROM PathTable WHERE IP = '127.0.0.1'
Das Problem nie wieder happended.
Also, meine Frage ist: Gibt es OleDbCommand nur excute "select *"? Danke.
Lösung
Vielleicht sind diese vorbehalten Worte. Versuchen Sie zitieren sie:
SELECT [Input], [Output] FROM PathTable WHERE IP = '127.0.0.1'
Andere Tipps
Ich bin die Liste von Microsoft zu senden Worte vorbehalten, Bitte überprüfen Sie reserviertes Schlüsselwort verwenden, das ist, warum Sie dieses Problem konfrontiert sind.
Es ist möglich, 'Input' oder 'Output' sind reservierte Worte in Access SQL so versuchen Sie [] eckige Klammern um diese Feldnamen.
Input und Output können Schlüsselwörter sein. Versuchen Sie, mit eckigen Klammern umgeben. d.
[Eingabe] [Ausgabe]
Datei nicht gefunden -. Eine weitere mögliche Ursache für diese Ausnahme ist, wenn die Datei Ihres auf Last versuchen / Lese existiert nicht
Ich habe gefunden, es nützlich, ein „File.Exists“ durchzuführen, bevor Sie versuchen, die Datei zu öffnen, nur mein Code, um sicherzustellen, erkennt diese spezifische Ursache des „IErrorInfo.GetDescription mit E_FAIL fehlgeschlagen (0x80004005)“ Ausnahme richtig.