使用oledb连接dbf文件时出现“外部表不是预期表格式”错误

时间:2021-08-29 23:17:49
产生错误程序如下
private bool readdbf(ref DataSet ds,ref string tableName)
        {//读DBF
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string fileName = this.openFileDialog1.FileName;
                string filePath = fileName.Substring(0, fileName.LastIndexOf("\\"));
                tableName = fileName.Substring(fileName.LastIndexOf("\\") + 1);
                tableName = tableName.Substring(0, tableName.LastIndexOf("."));
                string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=dBASE IV;User ID=;Password=;";
                                OleDbConnection oledbconnection = new OleDbConnection(connString);
                OleDbDataAdapter oledbdataadapter = new OleDbDataAdapter("select * from " + tableName, oledbconnection);
                 try
                {
                    oledbdataadapter.Fill(ds, tableName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                return true;
            }
            else
            {
                return false;
            }
            
        }
本机可以运行。
测试机运行时产生错误“外部表不是预期表格式”
测试机系统window XP SP2
jet 4.0 已经升级到SP8以上版本
MDAC2.8 安装时出现“所有功能已经安装”的提示

请问各位老大,我测试机上还应该安装什么环境才能运行程序

(补充:本机上使用ACCESS 2003 可以打开dbf文件,但是测试机上同样版本的ACCESS确不能打开dbf文件,出现的错误同样是“外部表不是预期表格式”,不知道是不是巧合,还是2个问题之间有一定联系。)

请各位老大指点

4 个解决方案

#1


帮你顶

#2


没试过...纯UP

#3


设个断点,调试一下程序,主要看看连接字符串对不对??

#4


dbf文件是在较高版本FoxPro下的表,要修改连接字符串。你可先用Excel打开试一下,若打不开,就是这种情况。

Provider=VFPOLEDB.1;Data Source=D:\教导处\学生综合素质考评\十五中2008;Collating Sequence=MACHINE

#1


帮你顶

#2


没试过...纯UP

#3


设个断点,调试一下程序,主要看看连接字符串对不对??

#4


dbf文件是在较高版本FoxPro下的表,要修改连接字符串。你可先用Excel打开试一下,若打不开,就是这种情况。

Provider=VFPOLEDB.1;Data Source=D:\教导处\学生综合素质考评\十五中2008;Collating Sequence=MACHINE