关于DataReader转为DataTable的两种方法,区别,都可以吗?
-------------------第一种------------------------------------------
public static DataTable ConvertdrTodt(SqlDataReader dr)
{
DataTable dt = new DataTable();
for (int i = 0; i < dr.FieldCount;i++ )//分析数据列,以此来构造dt结构
{
DataColumn mydc = new DataColumn();//对象化DataTable中的列
mydc.DataType = dr.GetFieldType(i);//获取DataReader中列的数据类型
mydc.ColumnName = dr.GetName(); //获取DataReader中列的名称
dt.Columns.Add(mydc); //将新建的列mydc加入到DaTable中(即列集合)
}
while (dr.Read())
{
DataRow mydrow = dt.NewRow(); //以上面建立好dt结构来对象化一行新的数据行
for (int i = 0; i < dr.FieldCount; i++)
{
mydrow[i] = dr[i].ToString; //把DataReder的每行数据填入Table中的每行row
}
dt.Rows.Add(mydrow); //所有row组成一个Table(即row的集合)
mydrow = null;
}
dr.Close();
return dt;
}
-------------------第二种------------------------------------------
SqlDataReader dr = DataPublicVar.sqlcmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr); //直接Load??
DataPublicVar.sqlcn.Close();
dr.Close();
return dt;
第二种直接load也可以??
我试过的确可以过。
那不是很方便??
为什么大家不用第二中方法呢?
谢谢解答
------解决方案--------------------
------解决方案--------------------
效率没有比较过,第二种代码简洁,用的多。