DataReader转化为DataSet

在VS2003中,DataGrid的DataSource是不支持DataReader的,到了VS2005的时候,GridView已经可以支持DataReader了,但是,有时候我们还是需要DataSet进行操作,以下Source是将DataReader转化为DataSet。          ///     <summary>        ///     Converts a SqlDataReader to a DataSet        ///     <param name='reader'>        /// SqlDataReader to convert.</param>        ///     <returns>        /// DataSet filled with the contents of the reader.</returns>        ///     </summary>public static DataSet convertDataReaderToDataSet(SqlDataReader reader)        {            DataSet dataSet = new DataSet();            do            {                // Create new data table                DataTable schemaTable = reader.GetSchemaTable();                DataTable dataTable = new DataTable();                if ( schemaTable != null )                {                    // A query returning records was executed                    for ( int i = 0; i < schemaTable.Rows.Count; i++ )                    {                        DataRow dataRow = schemaTable.Rows[ i ];                        // Create a column name that is unique in the data table  string columnName = ( string )dataRow[ "ColumnName" ];                        // Add the column definition to the data table                        DataColumn column = new DataColumn( columnName, ( Type )dataRow[ "DataType" ] );                        dataTable.Columns.Add( column );                    }                    dataSet.Tables.Add( dataTable );                    // Fill the data table we just created                    while ( reader.Read() )                    {                        DataRow dataRow = dataTable.NewRow();                        for ( int i = 0; i < reader.FieldCount; i++ )                            dataRow[ i ] = reader.GetValue( i );                        dataTable.Rows.Add( dataRow );                    }                }                else{                    // No records were returned                    DataColumn column = new DataColumn("RowsAffected");                    dataTable.Columns.Add(column);                    dataSet.Tables.Add( dataTable );                    DataRow dataRow = dataTable.NewRow();                    dataRow[0] = reader.RecordsAffected;                    dataTable.Rows.Add( dataRow );                }            }            while ( reader.NextResult() );            return dataSet;        } 文章引用自: http://blog.sina.com.cn/s/blog_4abba72d01000b1x.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值