.net读取.dbf文件若文件名称超过8个字符出现Microsoft Jet 数据库引擎找不到对象。

                string filename = item.Substring(item.LastIndexOf("\\")+1);
                string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + label7.Text + ";Extended Properties=dBASE IV;";
                OleDbConnection cnn = new OleDbConnection(connstr);
                string sql = string.Format("select * from {0}",filename);
                OleDbCommand cmd = new OleDbCommand(sql,cnn);
                if (cnn.State == ConnectionState.Closed)
                {
                    cnn.Open();
                }
                DataSet ds = new DataSet();
                OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                da.Fill(ds);

string filename = item.Substring(item.LastIndexOf("\")+1);
调试下,这个能得到文件名么,文件名中有空格么

还不行,用GetShortPathName api函数将filename转换为短文件名看看
http://www.pinvoke.net/default.aspx/kernel32.GetShortPathName