一部の C# コードを継承しました。古い dBase ファイルを処理します。少なくとも 3 ~ 5 年間、誰もコードに触れておらず、コンパイルされたバージョンがどこかで動作しますが、私はそれにアクセスできません。実行するはずの同じ環境 (同じアーキテクチャ、十分な見た目のドライバー) でソースから再コンパイルして、どのように機能するかを試してみたところ、次のエラーが表示されます。
[42S02] [Microsoft][ODBC dBase driver] A Microsoft Jet database engine could not find the object 'test'. Make sure the object exists and that you spell its name and the path name correctly.
( EDIT ) の 2 行目に
dbCommand.CommandText = "SELECT Count(*) FROM test";
recNum = (int)dbCommand.ExecuteScalar();
( EDIT ) 接続文字列を使用
OdbcConnection connection = new OdbcConnection(String.Format("driver={{Microsoft dBase Driver (*.dbf)}};DriverID=533;Dbq={0};Exclusive=1;", path));
ファイルが実際にそこにあるかどうかを確認したり、ファイル名を変更したりするなど、Googleで見つかった明白な解決策を試しました。したがって、ファイルがあるべき場所にあることはかなり確信しています。ファイルは破損していません (インターネットからダウンロードしたシェアウェアで開くことができますが、ファイルが過去 3 ~ 5 年間変更されていないことは言うまでもありません)。dBase と ODBC を使用するのはこれが初めてなので、明らかなはずの何かを見落としている可能性があります。
それを機能させるために他に何ができるでしょうか?