首页 新闻 搜索 专区 学院

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

0
悬赏园豆:10 [已解决问题] 解决于 2013-07-31 09:44

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

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

.F.的主页 .F. | 初学一级 | 园豆:13
提问于:2013-07-29 11:46
< >
分享
最佳答案
0

注意检查下面两句:

 mydc.DataType = dr.GetFieldType(i);

 mydr[i] = dr[i].ToString();

是否会数据类型不一致???

收获园豆:10
幻天芒 | 高人七级 |园豆:36790 | 2013-07-29 12:00

没有明白唉.... 

.F. | 园豆:13 (初学一级) | 2013-07-29 12:07

DataRow mydr  和dr 是一样的数据类型啊

.F. | 园豆:13 (初学一级) | 2013-07-29 12:10

@我想我是新手: 用try{}catch{}包围,看看是否有异常~

幻天芒 | 园豆:36790 (高人七级) | 2013-07-29 12:50

@幻天芒: 没有啊..

.F. | 园豆:13 (初学一级) | 2013-07-29 16:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册