zoukankan      html  css  js  c++  java
  • DataReader 转datatable

     public DataTable DataReaderToTable(MySqlDataReader dr)
            {
                DataTable dt = new DataTable();
                DataTable schemaTb = dr.GetSchemaTable();//得到SqlDataReader的结构,相当于表的结构一样,在这里表的结构信息也被存储成了一个信息表。这个信息表相当于两列多行,第一列存储数据结果表的列名称,第二列存储数据结果表对应列的类型。想象一下我们在设计SqlServer数据库的时候得表结构

                try
                {

                    foreach (DataRow sdr in schemaTb.Rows)//通过循环结构表来得到SqlDataReader的列信息,通过这个列信息建立一个DataTable的表结构
                    {
                        DataColumn dc = new DataColumn();//创建一个新列
                        // dc.DataType = sdr.GetType();//对于表结构信息的每一行得到当前的列类型
                        dc.DataType = System.Type.GetType("System.String");
                        dc.ColumnName = sdr[0].ToString();//得到列名称
                        dt.Columns.Add(dc);//将新建立的列放入表的列集合中
                    }
                    //循环SqlDataReader提取数据到达新建立的表中
                    while (dr.Read())
                    {
                        DataRow dr1 = dt.NewRow();
                        for (int i = 0; i < schemaTb.Rows.Count; i++)//对于原始数据的每一行,循环列将整行信息放入dt中
                        {
                            dr1[i] = dr[i].ToString();
                        }
                        dt.Rows.Add(dr1);
                        dr1 = null;
                    }
                    schemaTb = null;
                    dr.Close();
                    return dt;
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);

                }

            }

  • 相关阅读:
    java虚拟机学习-JVM调优总结-基本垃圾回收算法(7)
    学习笔记-人脸识别第三讲
    小波变换基础理论
    小波变换图像分解
    图像的纹理区域分类
    matlab中图片数据类型转换uint8与double
    八板体-器乐曲
    【歌词】金蛇狂舞-许笑薇-童声
    【歌词】金蛇狂舞-龙飘飘
    NLM算法
  • 原文地址:https://www.cnblogs.com/zhang9418hn/p/2749708.html
Copyright © 2011-2022 走看看