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 ...
随机推荐
- WINDOWS API 函数(超长,值得学习)
一.隐藏和显示光标 函数: int ShowCursor ( BOOL bShow ); 参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标:该函数的返回值为整型 ...
- Delphi与Javascript的交互
网络上也有人写了关于Delphi与Javascript的文章,其大多数使用ScriptControl等,均无法达到与Delphi自身融合的效果.我也是在翻阅自己的组件库的时候发现了这个以前收集来的代码 ...
- TComponent与String的转换(得到控件的DFM格式的描述)
现看下面这两个方法,把一个TComponent做成String,再就是把String转成TComponent function ComponentToStringProc(Component: TCo ...
- IP defragment
snort IP defragment 模型: BSD favors an original fragment with an offset that is less than or equal to ...
- [Leetcode][Python]46: Permutations
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 46: Permutationshttps://leetcode.com/pr ...
- 变形课(dfs)
变形课 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Total Submissi ...
- 这辆车已覆盖免费wifi
上周在前面,首页特意下载了几部电影.即使步行到完成下载任务之前,,也推高了十分钟.所述无线网络和赶车之间,其实,我选择了前者. 真的很可怕大胆,要知道.其他人可能是买不来的旅行. 幸运的是,.速度依然 ...
- 远程访问数据库查询数据量一大就Hang
最近刚为客户升级了一套Oracle Database,一切进展顺利,眼看就要顺利验收时,发现有部分客户端软件连接新版本数据库时会Hang,问题非常诡异. 系统环境如下 升级前的环境OS:Windows ...
- GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。
GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...
- javascript 数据结构和算法读书笔记 > 第三章 列表
1. 结构分析 列表首先要有以下几个属性: listSize 长度 pos 当前位置 dataStore 数据 我们要通过以下方法对上面三个属性进行操作: length() 获取长度 | getPos ...