数据查询的时候没有任何问题。代码如下
DataTable dtData = DBFConn.ExecuteDataTable(Path.GetDirectoryName(frmMain.HcDbDinDataFilePath), "Select * from DinData");
但是在插入数据时就开始出现外部表不是预期的格式的问题
string sqlStr = string.Format("insert into [District.dbf] (Id,Name,Address) values ('{0}','{1}','{2}')", id, name, address);
DBFConn.ExecuteNonQuery(Path.GetDirectoryName(_frmMain.HcDbDistrictFilePath), sqlStr);ExecuteDataTable代码如下
 OleDbConnection selectConnection = new OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE 5.0;Mode=Share Deny None;Password=;User ID=;Data Source={0}", new object[] { directory }));
                selectConnection.Open();
                OleDbDataAdapter adapter = new OleDbDataAdapter(commandText, selectConnection);
                DataTable dataTable = new DataTable();
                dataTable.Locale = CultureInfo.InvariantCulture;
                adapter.Fill(dataTable);
                return dataTable;ExecuteNonQuery代码如下
 OleDbConnection connection = new OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;Password=;User ID=;Data Source={0}", new object[] { directory }));
                connection.Open();
                OleDbCommand command = new OleDbCommand(commandText, connection);
                return command.ExecuteNonQuery();网上查过了无果,求达人解答,至于语句在VF里能够执行。

解决方案 »

  1.   

    既然是在VFP中执行没问题,可能是你连接字符串提供的版本信息过低
    看看这里关于VFP的连接字符串,一个一个地测试一下吧
    http://www.connectionstrings.com/visual-foxpro
      

  2.   

    另一个地方,你可以参考一下
    http://kingtable.popo.blog.163.com/blog/static/907576520081119113432114/edit/
      

  3.   

    断点调试
    OleDbConnection connection = new OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;Password=;User ID=;Data Source={0}", new object[] { directory })); 
                    connection.Open(); 
                    OleDbCommand command = new OleDbCommand(commandText, connection); 
    //以上都没问题
                    return command.ExecuteNonQuery();
    执行command.ExecuteNonQuery()后抛出异常。
    这样也说明连接有问题?
      

  4.   

    你按照上面的连接字符串试试了
    这个我也不能肯定啊,反正你VFP建立的表用Dbase4来操作,估计不妥的
      

  5.   

    唉,换了vfpoledb居然可以了...不过还要安装,感觉很麻烦,不管怎么说还是搞定了。。