本人模仿此页http://blog.csdn.net/goding/archive/2007/10/24/1841950.aspx编写将数据导出为dbf文件但总是在下面这个方法private void CreateData()
  {   string tempfile=GetRandomFileName(); 
   _fileName=_serverpath+@"Temp\"+tempfile+".dbf";
   File.Copy(_serverpath+_templetFile,_fileName,true);   string  strConn=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+_serverpath+@"Temp\"+";Extended Properties=dBASE 5.0";
   string sql="";
   if(_fields!=null && _fields!=string.Empty)
    sql="Select  "+_fields+"  From  [" + tempfile+"]" ;
   else
    sql="Select  *  From  ["+  tempfile +"]";
   OleDbDataAdapter  adpt=new  OleDbDataAdapter(sql,strConn);
   OleDbCommandBuilder  bd  =new  OleDbCommandBuilder  (adpt);
   bd.QuotePrefix="[";
   bd.QuoteSuffix="]";      DataSet  mySet=new DataSet();  
   adpt.Fill  (mySet,tempfile);   MoveBatch(_dataSource,mySet.Tables[0]);//批量导出数据   adpt.Update(mySet,tempfile);   
        }的adpt.Fill  (mySet,tempfile);出现如下错误:
Microsoft Jet 数据库引擎找不到对象'tempfile'。请确定对象是否存在,并正确地写出它的名称和路径。请问各位这是哪里的问题,是不是sql写错了

解决方案 »

  1.   

    string  strConn=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+_serverpath+@"Temp\"+";Extended Properties=dBASE 5.0";
    这句有错误啊
    你看下_serverpath+@"Temp\"这个路径是否正确
      

  2.   

    你的ConnectionString有问题吧?Microsoft.Jet.OLEDB.4.0是针对于Access数据库吧,如果你要读写dbf的话,你可以使用oledb或者odbc,具体连接字串你可以参见的方法一:
    http://blog.csdn.net/wonsoft/archive/2010/03/13/5377169.aspx
    只要你按这个写,肯定能读写。
      

  3.   

    应该是路径问题,调试看下_serverpath+@"Temp\"这个路径是什么,再看下tempfile是什么,检查路径下面是否有这个dbf文件?
      

  4.   

    怪事。程序没有做任何修改,只是试验了一下,这个问题解决了。
    我这个问题,在网上一直没有查到解决方法,但前天看见一个和我类似的情况,那位兄弟怀疑sql="Select  *  From  ["+  tempfile +"]";中的tempfile这个文件名是否不能超过8个字符,于是有修改了string tempfile=GetRandomFileName(); 这句,使tempfile不超过8个字符,问题通过。但关键是我又将string tempfile=GetRandomFileName();改为未修改前的状况,及不限制tempfile长度小于8个字符,这时调试时,问题也通过了。这就使我想不通了。同样的代码,为何会出现两个结果,(机子这两天没有开机。)兄弟们,你们对这个是怎么想的