Asp.net SqlDataReader转成Datatable
Asp.net SqlDataReader转成Datatable
- /// <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;
- }
- /// <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,尊重作者,转载请注明。
Asp.net SqlDataReader转成Datatable的更多相关文章
- Asp.net GridView转换成DataTable
GridView绑定DataTable后,如何获取GridView绑定后显示的值,在项目需求需要的背景下,搜索了获取单元格显示文本的方法,然后写了一个静态方法,经过在项目中的使用,bug的修复,较为稳 ...
- SqlDataReader 结果集 转成 DataTable
/// <summary> /// SqlDataReader 转成 DataTable /// 源需要是结果集 /// </summary> /// <param na ...
- 利用反射将Datatable、SqlDataReader转换成List模型
1. DataTable转IList public class DataTableToList<T>whereT :new() { ///<summary> ///利用反射将D ...
- .Net中List<T> 泛型转成DataTable、DataSet
在开发过程过程中有时候需要将List<T>泛型转换成DataTable.DataSet,可以利用反射机制将DataTable的字段与自定义类型的公开属性互相赋值. 1.List<T& ...
- SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable
MS SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表可以在不同服务器上). SqlBulkCopy 类允许编写提供类似功能的托管代码解决方 ...
- 带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel
步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript&qu ...
- C#_List转换成DataTable
/// <summary> /// 讲list集合转换成datatable /// </summary> /// <param name="list" ...
- 将List转换成DataTable
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- list转换成DataTable
list转换成DataTable类如下: public static DataTable ToDataTable<T>(this IList<T> datas) { DataT ...
随机推荐
- java中内存结构及堆栈详解
一. java内存结构 1. Heap(堆):实例分配的地方,通过-Xms与-Xmx来设置 2. MethodArea(方法区域):类的信息及静态变量. 对应是Permanet Generation, ...
- JavaEE Tutorials (25) - 使用Java EE拦截器
25.1拦截器概述380 25.1.1拦截器类381 25.1.2拦截器生命周期381 25.1.3拦截器和CDI38125.2使用拦截器381 25.2.1拦截方法调用382 25.2.2拦截生命周 ...
- GroundworkCSS ♥ Tables
微信公众平台开发(41)一键关注微信公众平台账号 - 方倍工作室 - 博客园 微信公众平台开发(41)一键关注微信公众平台账号 GroundworkCSS ♥ Tables Example Layou ...
- 新闻公布系统 (Asp.net 三层架构 )
2012年度课程设计---新闻公布系统(小结) ...
- vs2010编译live555源码
最近加入了公司的C++视频小组,利用中秋这个假期将研究了一些live555的源码,现在先将如何编译使用vs2010编译live555,整理出来,对以后分析代码有很大帮助. 1.下载live555源码, ...
- 【线段树成段更新-模板】【HDU1698】Just a Hook
题意 Q个操作,将l,r 的值改为w 问最后1,n的sum 为多少 成段更新(通常这对初学者来说是一道坎),需要用到延迟标记(或者说懒惰标记),简单来说就是每次更新的时候不要更新到底,用延迟标记使得更 ...
- EF项目中应用出现问题???
最近用EF做了个项目发现很多不便利的地方. 具体如下. 1,我是通过edmx 建模,然后通过模型生成数据库. 虽然数据库已经创建成功但是问题来了,我在加字段,和标的时候再次生成时domeo.edmx. ...
- Java学习—— for循环
For双重循环 /* 循环语句嵌套 */ class ForForTest { public static void main(String[] args) { /*int x,y = 0; for( ...
- sql生成20位数随机数
declare @rnd nvarchar(50)set @rnd =''while LEN(@rnd)<20 begin set @rnd =@rnd + REPLACE ( CONVERT( ...
- Why AIXTHREAD_SCOPE Should Be Set To 'S' On AIX
In a multi-processor environment running on an AIX platform, if you are intending to use multi-threa ...