使用DataReader填充DataTable

來源:互聯網
上載者:User
VB.NET    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Fill DataTable from DataReader
    ''' </summary>
    ''' <param name="oDataReader">DataReader對象</param>
    ''' <returns>返回DataTable</returns>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    '''     [Administrator]    2004-9-25   小牛哥    建立
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Function Fill()Function Fill(ByRef oDataReader As IDataReader) As DataTable
        Dim iLoop As Integer
        Dim oDataTable As DataTable
        Dim oSchemaTable As DataTable
        Dim oDataRow As DataRow

        oDataTable = New DataTable
        oSchemaTable = New DataTable
        oSchemaTable = oDataReader.GetSchemaTable()

        For iLoop = 0 To oSchemaTable.Rows.Count - 1
            oDataTable.Columns.Add(oSchemaTable.Rows(iLoop)("ColumnName"), oSchemaTable.Rows(iLoop)("DataType"))
        Next

        While oDataReader.Read
            oDataRow = oDataTable.NewRow

            For iLoop = 0 To oSchemaTable.Rows.Count - 1
                oDataRow(iLoop) = oDataReader(oSchemaTable.Rows(iLoop)("ColumnName"))
            Next

            oDataTable.Rows.Add(oDataRow)
        End While
        oDataReader.Close()

        oSchemaTable.Rows.Clear()

        Return oDataTable

    End Function

C#public DataTable Fill(ref IDataReader oDataReader) 

 int iLoop; 
 DataTable oDataTable; 
 DataTable oSchemaTable; 
 DataRow oDataRow; 
 oDataTable = new DataTable(); 
 oSchemaTable = new DataTable(); 
 oSchemaTable = oDataReader.GetSchemaTable(); 
 for (int iLoop = 0; iLoop <= oSchemaTable.Rows.Count - 1; iLoop++) { 
   oDataTable.Columns.Add(oSchemaTable.Rows(iLoop)("ColumnName"), oSchemaTable.Rows(iLoop)("DataType")); 
 } 
 while (oDataReader.Read) { 
   oDataRow = oDataTable.NewRow; 
   for (int iLoop = 0; iLoop <= oSchemaTable.Rows.Count - 1; iLoop++) { 
     oDataRow(iLoop) = oDataReader(oSchemaTable.Rows(iLoop)("ColumnName")); 
   } 
   oDataTable.Rows.Add(oDataRow); 
 } 
 oDataReader.Close(); 
 oSchemaTable.Rows.Clear(); 
 return oDataTable; 
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.