2011-09-16 134 views
0

當您使用DataTable.Load時,您如何知道是否所有結果數據都加載在DataTable中?或者說,我們如何知道DataReader是否已完成加載數據?如何知道「DataTable.Load()」是否已完成加載?

代碼:

'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 

回答

3

據我所知該方法是同步的。您知道它已完成,因爲該方法返回給您。如果沒有「完成」,它會拋出異常。

+0

真的嗎?所以我可以'使用Reader中的DataTable.Load(Reader)'作爲SqlDataReader = Command.ExecuteReader()... End using'沒有例外嗎? '因爲我會返回'​​DataTable'恐怕它不會完成,直到我回來... – dpp

+0

@domanokz是的;這正是我的意思。大多數異步方法將是顯而易見的,即'BeginLoad','StartLoad'等,並且將(通常)返回'IAsyncResult'或'Task [任務]或採取某種完成回調。 –

相關問題