关于 将dt按照dr的样子改造,并且得到dr里面的数据 出问题了

#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对象却发生了异常