#region 将dt按照dr的样子改造,并且得到dr里面的数据
public static DataTable Convertdrtodt(SqlDataReader dr)
{
DataTable dataTable = new DataTable();//建一个新的实例
for (int i = 0; i < dr.FieldCount; i++)
{
DataColumn mydc = new DataColumn();//关键的一步
mydc.DataType = dr.GetFieldType(i);
mydc.ColumnName = dr.GetName(i);
dataTable.Columns.Add(mydc);//关键的第二步
}
while (dr.Read())
{
DataRow mydr = dataTable.NewRow();//关键的第三步
for (int i = 0; i < dr.FieldCount; i++)
{
mydr[i] = dr[i].ToString();
}
dataTable.Rows.Add(mydr);//关键的第四步
mydr = null;
}
dr.Close();
return (dataTable);//别忘了要返回datatable,否则出错
}
#endregion
这一段的代码 我执行到mydr[i] = dr[i].ToString(); 还是有结果的
为什么到dataTable.Rows.Add(mydr);//关键的第四步
添加行元素进去的时候就没有结果了
不知道为什么,结果却是可以正确的转出来的..
我将你的代码复制下,运行起来是没有问题的而且也能得到结果, 但是在dr.close()的时候IDataReader对象却发生了异常