2 fhongchan FHongchan 于 2013.07.29 12:55 提问

关于 将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);//关键的第四步

添加行元素进去的时候就没有结果了

2个回答

FHongchan
FHongchan   2013.08.05 13:51
已采纳

不知道为什么,结果却是可以正确的转出来的..

u010618015
u010618015   2013.07.29 13:18

我将你的代码复制下,运行起来是没有问题的而且也能得到结果, 但是在dr.close()的时候IDataReader对象却发生了异常

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!