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. catch (Exception err)
  31. {}
  32. finally
  33. {
  34. dataReader.Close();
  35. sqlComm.Connection.Close();
  36. sqlComm.Dispose();
  37. }
  38. return dtReturn;
  39. }
  40. /// <summary>
       

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

    /// </summary>

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

    /// <returns></returns>

  41. protected DataTable CreateTableBySchemaTable(DataTable pSchemaTable)
  42. {
  43. DataTable dtReturn = new DataTable();
  44. DataColumn dc = null;
  45. DataRow dr = null;
  46. for (int i = 0; i < pSchemaTable.Rows.Count; i++)
  47. {
  48. dr = pSchemaTable.Rows[i];
  49. dc = new DataColumn(dr["ColumnName"].ToString(), dr["DataType"] as Type);
  50. dtReturn.Columns.Add(dc);
  51. }
  52. dr = null;
  53. dc = null;
  54. return dtReturn;
  55. }
    /// <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的更多相关文章

  1. Asp.net GridView转换成DataTable

    GridView绑定DataTable后,如何获取GridView绑定后显示的值,在项目需求需要的背景下,搜索了获取单元格显示文本的方法,然后写了一个静态方法,经过在项目中的使用,bug的修复,较为稳 ...

  2. SqlDataReader 结果集 转成 DataTable

    /// <summary> /// SqlDataReader 转成 DataTable /// 源需要是结果集 /// </summary> /// <param na ...

  3. 利用反射将Datatable、SqlDataReader转换成List模型

    1. DataTable转IList public class DataTableToList<T>whereT :new() { ///<summary> ///利用反射将D ...

  4. .Net中List<T> 泛型转成DataTable、DataSet

    在开发过程过程中有时候需要将List<T>泛型转换成DataTable.DataSet,可以利用反射机制将DataTable的字段与自定义类型的公开属性互相赋值. 1.List<T& ...

  5. SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable

    MS SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表可以在不同服务器上). SqlBulkCopy 类允许编写提供类似功能的托管代码解决方 ...

  6. 带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel

    步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript&qu ...

  7. C#_List转换成DataTable

    /// <summary> /// 讲list集合转换成datatable /// </summary> /// <param name="list" ...

  8. 将List转换成DataTable

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  9. list转换成DataTable

    list转换成DataTable类如下: public static DataTable ToDataTable<T>(this IList<T> datas) { DataT ...

随机推荐

  1. eclipse 软件的背景颜色、字体设置

    1.eclipse 背景色设置: Window->Preferences->General->Editors->Text Editors->Backgroud color ...

  2. EasyUI Combotree 只允许选择 叶子节点

    $("#SDID").combotree({ url: '/Ajax/GetDeptTree.aspx?level=4&pid=-1', onSelect: functio ...

  3. Java实现二叉搜索树的添加,前序、后序、中序及层序遍历,求树的节点数,求树的最大值、最小值,查找等操作

    什么也不说了,直接上代码. 首先是节点类,大家都懂得 /** * 二叉树的节点类 * * @author HeYufan * * @param <T> */ class Node<T ...

  4. VC6使用技巧

    1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}.方括号[].圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”.如果括号匹配正确,光标就跳到匹配的括号处,否则 ...

  5. mysql--存储过程(入门篇)

    h2 { color: #fff; background-color: #7CCD7C; padding: 3px; margin: 10px 0px } h3 { color: #fff; back ...

  6. 11gR2 RAC启用iptables导致节点宕机问题处理

    通常,在安装数据库时,绝大多数都是要求把selinux及iptables关闭,然后再进行安装的.但是在运营商的系统中,很多安全的因素,需要将现网的数据库主机上的iptables开启的. 在开启ipta ...

  7. 解决Mac OS Adobe Flash Builder 4.7 java heap space 问题【转】

    1. 在Finder中打开Adobe Flash Builder 4.7的安装目录 2. 在Adobe Flash Builder 4.7.app上点击右键“Show Package contents ...

  8. 在SSH框架中增加SiteMesh的支持

    1)引入jar包,如下两个jar包需要导入到系统的lib文件夹中: sitemesh-2.4.jar struts2-sitemesh-plugin-2.2.1.1.jar 2)修改web.xml增加 ...

  9. ChartControl简单的圆柱案例

    由于工作需要,最近学习了DevExpress控件中的ChartControl,并做了简单尝试,通过程序动态添加数据源到chartControl控件中,绘制了如下的条形图. 条形图的颜色等外观可在cha ...

  10. iOS中有关配置 Apache 服务器的详细步骤

    配置 Apache 服务器 目的: 能够有一个测试的服务器,Apache 服务器是免费的! 为什么是 Apache 使用最广的 Web 服务器 Mac自带,只需要修改几个配置就可以,简单,快捷 有些特 ...