连接如下:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\;Extended Properties=dBase IV;User Id=admin;Password=;"sql = "select * from [data.dbf]";读取 data.dbf 数据库时出错. 
在用 oledb 连接 dbf 数据库时报错:microsoft jet 数据库引擎找不到对象"[data.dbf]"在线等答案,谢!那位兄弟有示例的话发一份给我最为感谢![email protected] 

解决方案 »

  1.   

    试试:
    OleDbConnection con = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=e:\dbf(包含dbf表的文件夹);Collating Sequence=MACHINE");
      

  2.   

    [data.dbf],这个是 dbf文件吧??
    首先看有没有在你D盘的下面。
    然后,把data.dbf不要后缀名,就直接dbf的名字,。如aaa.dbf用sql = "select * from [aaa]";
      

  3.   

    回:lee_bdbf文件在 D:\下面的,用 [data] 也试过, 用 data 也试过, 都不行!
      

  4.   

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\data.dbf;Extended Properties=dBase IV;User Id=admin;Password=;"sql = "select * from [表名]";
      

  5.   

    to (孤独的流浪) 这样你试用成功过吗?网上说的都是 Data Source=D:\\data.dbf 这个地方用路径的。
      

  6.   

    to : lzsh0622
    你的这个是不是要下一个什么驱动?
      

  7.   

    to : lzsh0622    需要注册 VFPOLEDB.1 提供程序。不希望用这种方式, 发布时需要再安装提供程序。
      

  8.   


    OleDb 是系统自带的 如果用odbc需要安装.
      

  9.   

    to (孤独的流浪)   不行, 说是 “找不到 D:\\data.dbf  路径”
      

  10.   

    string strConnDbase= "Provider=Microsoft.Jet.OLEDB.4.0;
    Data Source=d:\\database;Extended Properties=dBASE IV;";
      

  11.   


    to: dragonforfly除了少了 User Id=admin;Password=; 这一部分, 和我的一样, 难道是这个问题?"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\;Extended Properties=dBase IV;User Id=admin;Password=;"
      

  12.   


    有使用过的朋友发一个示例, 非常感谢, [email protected]
      

  13.   

    我用的是ODBC.// 1.确认安装了Microsoft Visual FoxPro Driver
    //   控制面板 --> 管理工具 --> 数据源(ODBC) --> 驱动程序 --> Microsoft Visual FoxPro Driver
    // 2.确认dbf数据库中有数据,并且数据路径正确无误
    // Winform下的示例
    private void button1_Click(object sender, EventArgs e)
    {
        System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection();
        string table = @"C:\TDATA.dbf";
        string connStr = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + table + ";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
        conn.ConnectionString = connStr;
        conn.Open();
        string sql = "select * from " + table;
        OdbcDataAdapter da = new OdbcDataAdapter(sql, conn);
        DataTable dt = new DataTable();
        da.Fill(dt);
        dataGridView1.DataSource = dt;
        conn.Close();
    }
      

  14.   

    我用的是ODBC.// 1.确认安装了Microsoft Visual FoxPro Driver
    //   控制面板 --> 管理工具 --> 数据源(ODBC) --> 驱动程序 --> Microsoft Visual FoxPro Driver
    // 2.确认dbf数据库中有数据,并且数据路径正确无误
    // Winform下的示例
    private void button1_Click(object sender, EventArgs e)
    {
        System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection();
        string table = @"C:\TDATA.dbf";
        string connStr = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + table + ";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
        conn.ConnectionString = connStr;
        conn.Open();
        string sql = "select * from " + table;
        OdbcDataAdapter da = new OdbcDataAdapter(sql, conn);
        DataTable dt = new DataTable();
        da.Fill(dt);
        dataGridView1.DataSource = dt;
        conn.Close();
    }
      

  15.   


    我也有同样问题, 有用 oledb 连接成功的吗?
      

  16.   

    to : dragonforfly  你的这个也不行!
      

  17.   

    我现在也在用dbf文件,我也有个问题比较头疼
    就是不管用odbc还是oledb连接,创建文件时如果文件名超过8位就系统就自动截取
    只保留前面8位。不知道有没有人能解决这个问题
      

  18.   


    to : jsnjlhb这个应该是 dbf 数据库本身的问题, 因为 dbf 将文件名作为表名。 
      

  19.   

    Microsoft.Jet.OLEDB.4.0这个驱动默认只支持access数据库
      

  20.   


    to lucky_2005问题是网上很多文章有介绍 这种连接方法啊!
      

  21.   

    这样能解决:
                string filepath = @"T:\STAR\SHOP";
                string connectionstring = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + filepath + ";Exclusive=YES;NULL=NO;Collate=Machine;BACKGROUNDFETCH=YES;DELETED=NO;";
                OdbcConnection connection = new OdbcConnection(connectionstring);
                connection.Open();
                string sql = @"select * from LANGUAGE.TWT";
                OdbcDataAdapter mydata = new OdbcDataAdapter(sql, connection);
                DataSet myds = new DataSet();
                mydata.Fill(myds);
                int i = myds.Tables[0].Rows.Count;
                dataGridView1.DataSource = myds.Tables[0].DefaultView;
      

  22.   

    用oledb方法注意两个问题:
    1、在Data Source=D:\\;这个位置的参数要是dbf文件所在的文件夹才可以。不能是指向具体的dbf文件。
    2、我在执行select语句时没有使用[]这个分隔符。语句如下。
    string SQL = "select *  from a_xy.dbf";