次のコードを実行して、フォルダー内の DBF ファイルにアクセスしようとしています。RF10.dbf の場合のファイル名:
foxpro = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\xxxxxx\\xxxxx\\xxxxx\\;Extended Properties=dBASE IV;User ID=ADMIN;Password=;");
try
{
foxpro.Open();
label4.Text = "Connected";
}
catch (OleDbException oex)
{
label4.Text = "Connection Failed";
// connection error
}
そして、次のクエリを実行します。
OleDbCommand fpcmd = new OleDbCommand();
fpcmd.Connection = foxpro;
fpcmd.CommandText = "SELECT * FROM RF10.DBF WHERE SRNO='RDDFT000108'";
fpcmd.CommandType = CommandType.Text;
fpcmd.CommandTimeout = 300;
try
{
acompressor = (String)fpcmd.ExecuteScalar();
// SqlDataAdapter da = new SqlDataAdapter(cmd1);
//DataSet ds = new DataSet();
// da.Fill(ds);
if (acompressor == null)
acompressor = "";
if (acompressor.Equals(compressor))
{
MessageBox.Show("Serial number and compressor number is a correct match.");
textBox1.Text = "";
textBox2.Text = "";
}
else
{
MessageBox.Show("Serial number and compressor number DO NOT match.");
textBox1.Text = "";
textBox2.Text = "";
}
}
catch (OleDbException oex)
{
Console.Write(fpcmd.CommandText);
Console.Write(oex.Message);
// command related or other exception
}
問題は、クエリが実行されると、次のエラーが発生することです。
Microsoft Jet データベース エンジンは、オブジェクト 'RF10.DBF' を見つけることができませんでした。オブジェクトが存在すること、およびその名前とパス名のつづりが正しいことを確認してください。
ただし、RF10.dbf という名前のファイルが存在します。どこが間違っていますか?