dataReader转化为dataTable

转载 2006年05月19日 11:09:00

把dataReader转化为dataTable.下面的代码就能实现这个功能。

public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
        {
            //把那个DataReader转化成DataTable。
            DataTable datatable = new DataTable();
            DataTable schemaTable = dataReader.GetSchemaTable();
            //动态添加列
            try
            {
                foreach (DataRow myRow in schemaTable.Rows)
                {
                    DataColumn myDataColumn = new DataColumn();
                    myDataColumn.DataType = myRow[0].GetType();
                    myDataColumn.ColumnName = myRow[0].ToString();
                    datatable.Columns.Add(myDataColumn);
                }
                //添加数据
                while (dataReader.Read())
                {
                    DataRow myDataRow = datatable.NewRow();
                    for (int i = 0; i < schemaTable.Rows.Count; i++)
                    {
                        myDataRow[i] = dataReader[i];
                        Type type = dataReader[i].GetType();
                        switch (type.Name)
                        {
                            case "String":
                                myDataRow[i] = (string)dataReader[i];
                                break;
                            case "Int16":
                                myDataRow[i] = (short)dataReader[i];
                                break;
                            case "Int32":
                                myDataRow[i] = (int)dataReader[i];
                                break;
                            case "Int64":
                                myDataRow[i] = (long)dataReader[i];
                                break;
                            case "DateTime":
                                myDataRow[i] = (DateTime)dataReader[i];
                                break;
                            case "Decimal":
                                myDataRow[i] = (decimal)dataReader[i];
                                break;
                            case "Char":
                                myDataRow[i] = (char)dataReader[i];
                                break;
                            case "Double":
                                myDataRow[i] = (double)dataReader[i];
                                break;
                            default:
                                myDataRow[i] = dataReader[i];
                                break;
                        }
                    }
                    datatable.Rows.Add(myDataRow);
                    myDataRow = null;
                }
                schemaTable = null;
                dataReader.Close();
                return datatable;
            }
            catch (Exception ex)
            {
                Error.Log(ex.ToString());
                throw new Exception("转换出错出错!", ex);
            }
        }

相关文章推荐

把DataReader转换成DataTable的方法

  • 2010年05月05日 20:56
  • 2KB
  • 下载

数据库访问的一些公共的方法02-返回DataReader,DataSet,DataTable等对象

#region -----------------------SQL数据库的操作方法,返回DataReader,DataSet,DataTable等对象--------------------- ...

DataSet DataTable DataReader dataAdapter区别

DataSet是用来做连接sql的一种方法,意思是把数据库的副本存在应用程序里,应用程序开始运行时,把数据库相关数据保存到DataSet.DataTable表示内存中数据的一个表.常和DefaultV...

C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

出自: C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。 public class ConvertJson { ...

ASP.net有这些知识,DataSet,DataTable,DataReader,DataAdapter

ADO.NET2.0提供了两个用于检索关系数据的对象: DataSet和DataReader。并且这两个对象都可以将检索的关系数据存储在内存中。在软件开发过程中经常用到这两个控件,由于这两个控件在使...

DataSet,DataTable,DataReader,DataAdapter

(哇,今天一打开博客,吓得我一身冷汗都出来了,怎么这么快就14到23了!!嗷嗷!!).net进行数据库操作的时候,难免遇到DataSet,DataReader和DataTable,下面让我们来认识一下...

Convert a DataReader to DataTable in ASP.NET

http://www.dotnetcurry.com/ShowArticle.aspx?ID=143 Convert a DataReader to DataTable in ASP.NET A Da...
  • lJean
  • lJean
  • 2011年05月17日 21:15
  • 532

DataSet,DataTable,DataReader,DataAdapter区别(搞笑版)

ASP.net有这些知识,DataSet,DataTable,DataReader,DataAdapter.DataSet是用来做连接sql的一种方法,意思是把数据库的副本存在应用程序里,应用程序开始...

Datatable和json互相转化代码

  • 2017年04月14日 19:16
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dataReader转化为dataTable
举报原因:
原因补充:

(最多只允许输入30个字)