如何将datareader转换为datatable

jas*_*son 7 vb.net asp.net-2.0

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

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

它只有当我传递datareader到另一个函数,它停止工作.这是因为dr关闭还是什么?我该如何克服这个问题?任何帮助都会很棒.

Ben*_*Ben 48

使用DataTable Load()方法.

 // Given a DataReader called "reader"
 DataTable dt = new DataTable();
 dt.Load(reader)
Run Code Online (Sandbox Code Playgroud)


小智 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
Run Code Online (Sandbox Code Playgroud)