将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]