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

0

ファイルが見つかりません - この例外の別の考えられる原因は、ロード/読み取りしようとしているファイルが存在しない場合です。

ファイルを開こうとする前に「File.Exists」を実行すると、「IErrorInfo.GetDescription failed with E_FAIL(0x80004005)」例外の特定の原因をコードが正しく検出できるようになると便利です。

于 2013-09-30T14:04:37.833 に答える