我有一个关于将datareader
转换为datatable
的问题。在我的代码中,我在一个类中创建了一个datareader
并传递给另一个我要将其转换为datatable
的类。
当我这样做时,它似乎不起作用,因为表格仍然是空的。如果我在同一个函数中进行转换,它可以正常工作。
仅当我将datareader
传递给另一个停止工作的功能时才会这样做。这是因为dr
已关闭还是什么?我该如何克服这个问题?任何帮助都会很棒。
答案 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