2009-12-15 3 views
2

Я создаю таблицу с именем «PathTable» в базе данных MS-Access. таблица выглядит так:OleDbCommand не может вызывать эту команду, почему?

------------------------------ 
| IP  | Input | Output | 
------------------------------ 
| 127.0.0.1 | XXXXX | YYYYYY | 
------------------------------ 

Когда я программировал эти

String CommandString = "SELECT Input, Output FROM PathTable WHERE IP = '127.0.0.1'"; 

OleDbCommand CommandObj = new OleDbCommand(CommandString, m_Connection); 

OleDbDataReader ReaderObj = CommandObj.ExecuteReader(); 

код всегда бросить OleDbException и ErrorDescription является E_FAIL (0x80004005),

Но если я заменил commandString с

SELECT * FROM PathTable WHERE IP = '127.0.0.1' 

Проблема никогда не произойдет снова.

Итак, мой вопрос: делает ли OleDbCommand только «выбор»? Благодарю.

ответ

2

Возможно, что это reserved слов. Попробуйте цитировать их:

SELECT [Input], [Output] FROM PathTable WHERE IP = '127.0.0.1' 
+0

Не будет ли это относиться к ним как к строковым литералам Дарина? –

+0

Вы правы. Необходимо использовать квадратные скобки. –

+0

Получаю ли я частичный кредит? :) –

0

Это возможно «ввод» или «выход» являются зарезервированными словами в Access SQL, так попробуйте добавить [] квадратные скобки вокруг этих имен полей.

+0

Не только Доступ к SQL, но ODBC и стандарт ISO/ANSI SQL с SQL-92 и далее. – onedaywhen

0

Ввод и вывод могут быть ключевыми словами. Попробуйте окружить их квадратными скобками. т.е.

[Input] [Выход]

1

Я посылаю вам список зарезервированных слов Microsoft, пожалуйста, проверьте, вы используете зарезервированное ключевое слово, поэтому вы столкнулись с этой проблемой.

http://support.microsoft.com/kb/321266

0

Файл не найден - Другая возможная причина этого исключения есть, если ваш файл пытается загрузить/чтения не существует.

Я нашел полезным выполнить «File.Exists», прежде чем пытаться открыть файл, чтобы убедиться, что мой код неправильно определяет эту конкретную причину «Исправление IErrorInfo.GetDescription с E_FAIL (0x80004005)».

Смежные вопросы