• Asp.net SqlDataReader转成Datatable


    Asp.net SqlDataReader转成Datatable

    所属栏目:Asp.net 编程 | 发布日期:2013年04月05日 | 点击:517 次
    内容摘要:Asp.net 数据存储,呈现方式有多种,如DataSet,DataTable,DataView,DataReader,IList等等,做得多了,常会需要将数据存储类型相互转换,这边介绍DataReader转DataTable的方法。
    1. /// <summary>   
    2. /// SqlDataReader转成DataTable实现方法   
    3. /// </summary>   
    4. /// <param name="strSql"></param>   
    5. /// <returns></returns>   
    6. protected DataTable DataReaderToDataTable(string strSql)   
    7. {   
    8.     string connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;   
    9.     SqlConnection sqlConn = new SqlConnection(connstr);   
    10.     SqlCommand sqlComm = new SqlCommand(strSql, sqlConn);   
    11.     SqlDataReader dataReader = null;   
    12.     DataTable dtReturn = null;   
    13.     object[] value = null;   
    14.     try  
    15.     {   
    16.         sqlComm.Connection.Open();   
    17.         dataReader = sqlComm.ExecuteReader();   
    18.         if (dataReader.HasRows)   
    19.         {   
    20.             dtReturn = CreateTableBySchemaTable(dataReader.GetSchemaTable());   
    21.             value = new object[dataReader.FieldCount];   
    22.             while (dataReader.Read())   
    23.             {   
    24.                 dataReader.GetValues(value);   
    25.                 dtReturn.LoadDataRow(value, true);   
    26.             }   
    27.             value = null;   
    28.         }   
    29.   
    30.     }   
    31.     catch (Exception err)   
    32.     {}   
    33.     finally  
    34.     {   
    35.         dataReader.Close();   
    36.         sqlComm.Connection.Close();   
    37.         sqlComm.Dispose();   
    38.     }   
    39.     return dtReturn;   
    40. }   
    41.       /// <summary>
         

          /// 本方法创建表各个列的名
         

          /// </summary>
         

          /// <param name="pSchemaTable">是一个表的结构表</param>
         

          /// <returns></returns> 
    42. protected DataTable CreateTableBySchemaTable(DataTable pSchemaTable)   
    43. {   
    44.     DataTable dtReturn = new DataTable();   
    45.     DataColumn dc = null;   
    46.     DataRow dr = null;   
    47.     for (int i = 0; i < pSchemaTable.Rows.Count; i++)   
    48.     {   
    49.         dr = pSchemaTable.Rows[i];   
    50.         dc = new DataColumn(dr["ColumnName"].ToString(), dr["DataType"as Type);   
    51.         dtReturn.Columns.Add(dc);   
    52.     }   
    53.     dr = null;   
    54.     dc = null;   
    55.     return dtReturn;   
    56. }  
        /// <summary>
        /// SqlDataReader转成DataTable实现方法
        /// </summary>
        /// <param name="strSql"></param>
        /// <returns></returns>
        protected DataTable DataReaderToDataTable(string strSql)
        {
            string connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection sqlConn = new SqlConnection(connstr);
            SqlCommand sqlComm = new SqlCommand(strSql, sqlConn);
            SqlDataReader dataReader = null;
            DataTable dtReturn = null;
            object[] value = null;
            try
            {
                sqlComm.Connection.Open();
                dataReader = sqlComm.ExecuteReader();
                if (dataReader.HasRows)
                {
                    dtReturn = CreateTableBySchemaTable(dataReader.GetSchemaTable());
                    value = new object[dataReader.FieldCount];
                    while (dataReader.Read())
                    {
                        dataReader.GetValues(value);
                        dtReturn.LoadDataRow(value, true);
                    }
                    value = null;
                }
    
            }
            catch (Exception err)
            {}
            finally
            {
                dataReader.Close();
                sqlComm.Connection.Close();
                sqlComm.Dispose();
            }
            return dtReturn;
        }
    
        /// <summary>
       
    /// 本方法创建表各个列的名
       
    /// </summary>
       
    /// <param name="pSchemaTable">是一个表的结构表</param>
       
    /// <returns></returns> protected DataTable CreateTableBySchemaTable(DataTable pSchemaTable) { DataTable dtReturn = new DataTable(); DataColumn dc = null; DataRow dr = null; for (int i = 0; i < pSchemaTable.Rows.Count; i++) { dr = pSchemaTable.Rows[i]; dc = new DataColumn(dr["ColumnName"].ToString(), dr["DataType"] as Type); dtReturn.Columns.Add(dc); } dr = null; dc = null; return dtReturn; }

    方法来自互联网,忘记从哪来的,在此注明。

    作者:www.btnan.com,来源于:http://www.btnan.com,尊重作者,转载请注明。

     
  • 相关阅读:
    通过注册表获取计算机相关信息
    GetTickCount()函数
    SystemInfo获取计算机相关信息
    CriticalSection 临界区
    mysql慢查询问题
    mysql show processlist详解
    nginx及php版本号隐藏
    安装psutil模块报错&安装python-devel
    ubuntu ssh重启
    php-fpm配置优化
  • 原文地址:https://www.cnblogs.com/zhouyunbaosujina/p/3357593.html
Copyright © 2020-2023  润新知