didasoft 发表于 2013-2-5 01:21:14

将DataReader转换为DataTable的一个函数

有人问到这个,就参照DNN的实现,用C#写了一个。记录下来作为备忘。

 
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;"> 1http://www.agoit.com/Images/OutliningIndicators/None.gif        public static DataTable ConvertDataReaderToDataTable(IDataReader reader)
 2http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gif        http://www.cnblogs.com/Images/dot.gif{
 3http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            DataTable objDataTable = new DataTable();
 4http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            int intFieldCount = reader.FieldCount;
 5http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            for (int intCounter = 0; intCounter < intFieldCount; ++intCounter)
 6http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif            http://www.cnblogs.com/Images/dot.gif{
 7http://www.agoit.com/Images/OutliningIndicators/InBlock.gif                objDataTable.Columns.Add(reader.GetName(intCounter), reader.GetFieldType(intCounter));
 8http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif            }
 9http://www.agoit.com/Images/OutliningIndicators/InBlock.gif
10http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            objDataTable.BeginLoadData();
11http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            
12http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            object[] objValues = new object;
13http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            while (reader.Read())
14http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif            http://www.cnblogs.com/Images/dot.gif{
15http://www.agoit.com/Images/OutliningIndicators/InBlock.gif                reader.GetValues(objValues);
16http://www.agoit.com/Images/OutliningIndicators/InBlock.gif                objDataTable.LoadDataRow(objValues, true);
17http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif            }
18http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            reader.Close();
19http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            objDataTable.EndLoadData() ;
20http://www.agoit.com/Images/OutliningIndicators/InBlock.gif 
21http://www.agoit.com/Images/OutliningIndicators/InBlock.gif            return objDataTable;
22http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockEnd.gif        }
23http://www.agoit.com/Images/OutliningIndicators/None.gif
页: [1]
查看完整版本: 将DataReader转换为DataTable的一个函数