2

我在 MS-Access DB 中创建了一个名为“PathTable”的表。表格是这样的:

------------------------------
| 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 是否只执行“select *”?谢谢。

4

5 回答 5

2

也许这些是保留字。尝试引用它们:

SELECT [Input], [Output] FROM PathTable WHERE IP = '127.0.0.1'
于 2009-12-15T07:26:54.730 回答
1

我正在向您发送 Microsoft 保留字列表,请检查,您使用的是保留关键字,这就是您面临此问题的原因。

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

于 2009-12-15T07:41:32.423 回答
0

“输入”或“输出”可能是 Access SQL 中的保留字,因此请尝试在这些字段名称周围添加 [] 方括号。

于 2009-12-15T07:26:59.880 回答
0

输入和输出可能是关键字。尝试用方括号括起来。IE

[输入输出]

于 2009-12-15T07:27:33.433 回答
0

未找到文件 - 此异常的另一个可能原因是您尝试加载/读取的文件不存在。

我发现在尝试打开文件之前执行“File.Exists”很有用,只是为了确保我的代码正确检测到“IErrorInfo.GetDescription failed with E_FAIL(0x80004005)”异常的特定原因。

于 2013-09-30T14:04:37.833 回答