如何将datareader转换为datatable

时间:2012-02-23 12:35:59

标签: vb.net asp.net-2.0

我有一个关于将datareader转换为datatable的问题。在我的代码中,我在一个类中创建了一个datareader并传递给另一个我要将其转换为datatable的类。

当我这样做时,它似乎不起作用,因为表格仍然是空的。如果我在同一个函数中进行转换,它可以正常工作。

仅当我将datareader传递给另一个停止工作的功能时才会这样做。这是因为dr已关闭还是什么?我该如何克服这个问题?任何帮助都会很棒。

2 个答案:

答案 0 :(得分:48)

使用DataTable Load()方法。

 // Given a DataReader called "reader"
 DataTable dt = new DataTable();
 dt.Load(reader)

答案 1 :(得分:2)

检查出来:

Public Function ExecuteQuery(ByVal s As String, ByVal condb As SqlConnection, ByVal ParamArray params() As SqlParameter) As DataTable
        Dim dt As DataTable = Nothing
        Using da As New System.Data.SqlClient.SqlDataAdapter(s, condb)               
            dt = New DataTable
            If params.Length > 0 Then
                da.SelectCommand.Parameters.AddRange(params)
            End If
            If da.SelectCommand.Connection.State <> ConnectionState.Open Then da.SelectCommand.Connection.Open()
            da.Fill(dt)                    
        End Using
        Return dt
End Function