执行查询时,在给定路径中找不到DBF文件

时间:2013-10-31 13:21:49

标签: c# asp.net oledb dbf

我正在尝试运行以下代码来访问文件夹中的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的文件。我哪里错了?

3 个答案:

答案 0 :(得分:2)

IIRC您不在查询中包含扩展名:

fpcmd.CommandText = "SELECT * FROM RF10 WHERE SRNO='RDDFT000108'";

答案 1 :(得分:1)

尝试使用完整的文件路径:

fpcmd.CommandText = "SELECT * FROM 'D:\some_folder\RF10.DBF' WHERE SRNO='RDDFT000108'";

答案 2 :(得分:0)

它可能是您对文件夹或文件的访问权限。你检查过了吗?