【问题标题】:How would you know if "DataTable.Load()" finished loading?你怎么知道“DataTable.Load()”是否完成加载?
【发布时间】:2011-11-18 10:21:17
【问题描述】:

当您使用DataTable.Load 时,您如何知道是否所有结果数据都加载到DataTable 中?或者更确切地说,我们如何知道DataReader 是否已完成数据加载?

代码:

'Connection, command etc.
Dim Reader as SqlDataReader = Command.ExecuteReader()
Dim SomeDataTable as new DataTable()
SomeDataTable.load(Reader); 'When will loading be finished or how would you know?

我正在使用 VB.NET

更新:

这是我的原始代码:

Private Function LoadPRS(ByVal Username As String) As DataTable
    Dim PRSList As New DataTable

    Using Connection As New SqlConnection(ConfigurationManager.ConnectionStrings("DBCS").ToString)
        Using Command As New SqlCommand _
            ("select * from products", Connection)

            Connection.Open()
            Using Reader = Command.ExecuteReader
                PRSList.Load(Reader)
            End Using
        End Using
    End Using

    Return PRSList
End Function

【问题讨论】:

    标签: .net datatable datareader


    【解决方案1】:

    据我所知,该方法是同步的。您知道它已经完成,因为该方法返回给您。如果它没有“完成”,它就会抛出异常。

    【讨论】:

    • 真的吗?所以我可以毫无例外地在Using Reader as SqlDataReader = Command.ExecuteReader() ... End Using 内做DataTable.Load(Reader) 吗? '因为我会退回 DataTable 恐怕要等我回来后才能完成......
    • @domanokz 是的;这正是我的意思。大多数异步方法都是显而易见的,即BeginLoadStartLoad 等,并且会返回(通常)IAsyncResultTask[<T>],或者采取某种完成回调。
    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 2023-04-08
    • 2012-11-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2015-05-14
    • 2011-11-05
    相关资源
    最近更新 更多