各位大侠,我用oledbdataadapter的fill方法来填充datatable,但是一直失败,请各位帮忙看看,用的sybase数据库,select语句是可以执行的,代码如下:                OleDbDataAdapter dataAdapter = new OleDbDataAdapter("select * from table1", connectionString);
                DataTable table = new DataTable();
               
                dataAdapter.Fill(table);
                bs.DataSource = table;
datatable对象一直不能加载数据,我用单步调试在即时窗口执行dataAdapter.Fill(table);返回数据库的记录条数,这个是与数据库一直的,但table就是为空,连接字符串和select语句肯定是对的,因为如果用datareader是可以逐条读取数据的。希望大家帮帮忙,谢谢。

解决方案 »

  1.   

    指明填充的表名,参考            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=c:\\txl.mdb");
                con.Open();
                string sql = "select * from stuff";
                OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
                ds = new DataSet();
                da.Fill(ds, "stuff");//填充到ds,表名为stuff
                bs.DataSource =  ds.Tables[0];
      

  2.   


     DataTable table = new DataTable();
     dataAdapter.Fill(table);
     这样应该是不可以的 不需要自己定义个dt吧
     就如楼上的那样填充吧。
     ds = new DataSet();
     da.Fill(ds, "stuff");//填充到ds,表名为stuff
      

  3.   


    直接填充datatable肯定可以,问题应该处在其它地方。
      

  4.   

    在dataAdapter.Fill(table);后面输出table.Rows.Count看看是几?
      

  5.   

    你就用datareader填充看看。
    记得现要自己通过datareader.getfieldtype;datareader.getname或者datareader.getschematabel创建datatabel的结构
      

  6.   

    table填充后为空,count为0,难道是.net和sybase的兼容问题,reader转也可以但是放着这么方便的方法不用,太伤心了。
      

  7.   

                OleDbDataAdapter Adapter = new OleDbDataAdapter();
                DataTable table = new DataTable();
                using (OleDbConnection connetion = new OleDbConnection(connectionString))
                {
                    Adapter.SelectCommand = new OleDbCommand(SqlString, connetion);
                    Adapter.Fill(table);
                    
                }
      

  8.   

    兄弟,你的问题是sybase的一个bug有可能,我试了好多方法都实现不了,如果你是装的是12.5的话,请把Ole驱动降级一下,应该就可以了。如果有需要我可以给你,
      

  9.   

    楼上的朋友也遇到过?  那麻烦你发个谢谢, 邮箱[email protected]