2012-03-23 75 views
0

我一直在尋找一堆代碼片段,我只是不理解那裏發生了什麼。一些幫助理解連接,閱讀/操作和關閉過程將不勝感激。VB.NET本地數據庫連接/數據提取

我一直在閱讀有關這些DataAdapter,Ole和Sql和Sqlce的所有內容,我不知道要使用哪個或哪些內容。

我在VB.NET 2010中創建了一個數據庫,它以database.sdf的形式出現,我選擇了本地數據庫選項(我認爲這是相關的?)。然後我用一列數據填充了數據庫的列標題和一個主鍵。表中包含許多不同的列,但用於測試目的,以下是相關的:

  • DB名稱:db_test
  • 表名稱:位置
  • 主鍵列標題:CITY
  • 另一列:BOUND_X
  • 信息在這兩個細胞:CITY - 「不倫瑞克」和BOUND_X - 「5」
  • 只有一個數據的行,所以這 要麼是行(0)或行(1),因爲我不不知道.NET爲它使用什麼開始索引。

這是我拼湊在一起,但我敢肯定它只是甚至沒有在正確的方向...

顯然代碼幫助將是驚人的,但如果有人願意把此過程英文也是如此,那太棒了。

Dim conn As SqlConnection = New SqlConnection("Data Source=G:\Programming\VB.NET\TEST\TEST\db_test.sdf") 

Dim ds As New db_test 
Dim sql As New SqlCommand("SELECT * FROM Locations WHERE CITY='Brunswick'") 

conn.Open() 

(I have no idea what this is actually referring to, I am just trying to read data with these commands below that seemed to pop up a lot in forums...) 
Dim sdr As SqlDataReader = sql.ExecuteReader 
While sdr.Read = True 
    MsgBox(sdr.Item("CITY") & " " & sdr.Item("BOUND_X")) 
End While 

sdr.Close() 

conn.Close() 

回答

1

.NET中的數據訪問代碼分爲什麼是ADO.NET。您可以閱讀參考這裏:

http://msdn.microsoft.com/en-us/library/h43ks021(v=vs.100).aspx

關於代碼:

  1. 的SqlConnection的初始化。連接是訪問數據源處的數據的手段。由於您的源代碼是單文件數據庫(可能是SQL CE),因此它會使用文件路徑進行初始化。所有其他類都使用SqlConnection來訪問數據源。
  2. 命令被初始化以獲取必要的數據。它可能是對存儲過程或SQL查詢的調用。它顯示了獲取數據的方式 - 獲取什麼數據以及如何獲取數據。
  3. 打開與數據源的連接。傳輸數據的通道已打開,需要進行的操作(端口打開,握手,文件打開等)
  4. SqlDataReader是基於命令和連接讀取數據的機制之一。命令需要連接(應該設置sql.Connection = conn)並且可以以三種不同的方式執行:ExecuteReader() - 返回dataReader並將行作爲一個集合獲取; ExecuteScalar() - 執行像count/avg/...這樣的返回單行單列結果的統計sql查詢(如'5') - 返回int; ExecuteNonQuery() - 執行不返回任何結果的查詢(如創建或刪除表等)。
  5. 因此,dataReader就像StreamReader的文件,只是返回而不是行讀取 - 行取回。它指向整個集合的當前行。默認的操作過程是使用Read()遍歷dataReader並將每個dataRow保存到列表中。
  6. 連接已關閉,免費使用的資源。

更多技術上是正確的代碼應該是這樣的可以在這裏找到:

http://msdn.microsoft.com/en-us/library/dw70f090.aspx#Y533