• 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);

                }

            }

  • 相关阅读:
    Hibernate 小章总结(三)
    河北民间组织管理系统软件
    《编写有效用例阅读笔记二》
    《编写有效用例》读后感(一)
    专业实训需求分析
    2015秋季个人阅读计划
    大道至简阅读笔记之三
    大道至简阅读笔记之二
    大道至简阅读笔记之一
    程序员修炼之道阅读笔记之二
  • 原文地址:https://www.cnblogs.com/zhang9418hn/p/2749708.html
Copyright © 2020-2023  润新知