oledbdataadapter fill() 问题

neeka 2012-09-04 12:45:54
各位大侠,我用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是可以逐条读取数据的。

希望大家帮帮忙,谢谢。
...全文
903 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2012-09-04
  • 打赏
  • 举报
回复
指明填充的表名,参考

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];
neeka 2012-09-04
  • 打赏
  • 举报
回复
楼上的朋友也遇到过? 那麻烦你发个谢谢, 邮箱zhang_ke@qq.com
hussarzp 2012-09-04
  • 打赏
  • 举报
回复
兄弟,你的问题是sybase的一个bug有可能,我试了好多方法都实现不了,如果你是装的是12.5的话,请把Ole驱动降级一下,应该就可以了。如果有需要我可以给你,我的邮箱是xj7722185@163.com
DENQH 2012-09-04
  • 打赏
  • 举报
回复
 OleDbDataAdapter Adapter = new OleDbDataAdapter();
DataTable table = new DataTable();
using (OleDbConnection connetion = new OleDbConnection(connectionString))
{
Adapter.SelectCommand = new OleDbCommand(SqlString, connetion);
Adapter.Fill(table);

}
neeka 2012-09-04
  • 打赏
  • 举报
回复
table填充后为空,count为0,难道是.net和sybase的兼容问题。。。,reader转也可以但是放着这么方便的方法不用,太伤心了。
代码誊写工 2012-09-04
  • 打赏
  • 举报
回复
你就用datareader填充看看。
记得现要自己通过datareader.getfieldtype;datareader.getname或者datareader.getschematabel创建datatabel的结构
dalmeeme 2012-09-04
  • 打赏
  • 举报
回复
在dataAdapter.Fill(table);后面输出table.Rows.Count看看是几?
neeka 2012-09-04
  • 打赏
  • 举报
回复
就是,加不加表名是一样的,加了一样出错,这就是一个很简单的程序,我实在找不到其他原因了。
代码誊写工 2012-09-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
C# code


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

直接填充datatable肯定可以,问题应该处在其它地方。
天下如山 2012-09-04
  • 打赏
  • 举报
回复

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

111,088

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧