日期:2014-05-18  浏览次数:20500 次

有没有相关方法把SqlDataReader转换成dataset
本身有没有方法
还是要自己写?

------解决方案--------------------
Ado.Net已经讲的很好啦,为什么用DataAdapter和DataReader呢?他们的方法就说了,一个Fill方法一个Read,这样你就应该知道啦
------解决方案--------------------
楼上说的对,这个是常识吧
如果你用DataSet的话就用DataSet,用SqlDataReader的话就用SqlDataReader,在它们之间进行转化不能实现,不过是浪费资源。
------解决方案--------------------
DataTable dt = new DataTable();
dt.Columns.Add( "data1 ");
dt.Columns.Add( "data2 ");
dt.Columns.Add( "data3 ");
dt.Columns.Add( "data4 ");//在这个datatable里在添加4个字段(列),分别是data1-data4
while(dr.Read())//这个dr的就是预先写好的DataReader,我就不写了
{
dt.Rows.Add(dr[ "数据库对应data1字段1 "].ToString(),dr[ "字段2 "].ToString(),dr[ "字段3 "].ToString(),,dr[ "字段4 "].ToString());
}
dr.Close();//这样就得到了一个datatable,如果要把这个datatable加入到dataset数据集里,就这样
DataSet ds = new DataSet();
ds.Tables.Add(dt);//想加几个加几个
------解决方案--------------------
dt.Rows.Add(dr[ "数据库对应data1字段1 "].ToString(),dr[ "字段2 "].ToString(),dr[ "字段3 "].ToString(),,dr[ "字段4 "].ToString());

这里忘说了,你先定义的datatable里有几个列,那么在添加的时候也必须有几个列。
------解决方案--------------------
随便说两句:
把SqlDataReader转换成Dataset是肯定可以的.在DataAdapter的Fill方法中,它的内部工作原理也就是利用DataReader的速度读取数据然后转到DataSet中.