2011-06-06 144 views
0

這是在.net SDK中提供的代碼示例:這段代碼是什麼意思?

Private Sub ReadOrderData(ByVal connectionString As String) 
    Dim queryString As String = _ 
     "SELECT OrderID, CustomerID FROM dbo.Orders;" 

    Using connection As New SqlConnection(connectionString) 
     Dim command As New SqlCommand(queryString, connection) 
     connection.Open() 

     Dim reader As SqlDataReader = command.ExecuteReader() 

     ' Call Read before accessing data. 
     While reader.Read() 
      Console.WriteLine(String.Format("{0}, {1}", _ 
       reader(0), reader(1))) 
     End While 

     ' Call Close when done reading. 
     reader.Close() 
    End Using 
End Sub 

我的問題:這讀卡器(0)實際的快捷調用此屬性reader.item(0)

回答

5

reader(0)引用檢索行中的第一個字段。不過,在這種情況下,您最好參考名稱OrderID。請參閱SqlDataReader.Item Property

這是索引屬性。你可以找到一些細節here

+0

是的,我知道目的,但是當創建我們自己的類時,我們需要添加我們的方法和屬性,對吧?在這種情況下,對reader(0)的調用實際上是對SqlDataReader類的子,函數或屬性的調用? – user774411 2011-06-06 04:32:43

+0

@Dee Jay - SqlDataReader.Item。答案中有一個參考。 – 2011-06-06 04:33:45

+0

你的意思是SqlDataReader類的Item屬性,對吧?好吧,如果我正在創建自己的類並希望具有與此SqlDataReader類相同的行爲,那麼我可以只聲明item屬性,並將該調用作爲我的類的實例,就像當前reader(0)調用一樣?我是否需要添加任何東西(實現或繼承)? – user774411 2011-06-06 04:38:09

2

讀取器(0),閱讀器(1)等指的是行烏爾retriving的列/字段,

讀取器(0)--->塔1個

讀取器(1) - - >第2列 ...

您可以使用直接字段名替代這些'讀者'。但在書籍/教程中,代碼總是這樣寫的。

+0

+1,感謝Stuti! – user774411 2011-06-06 04:45:17