2017/09/30

[ADO.NET] VB.net 資料庫連線 III

接續前一篇 [ADO.NET] VB.net 資料庫連線 II 。 這一次要說明如何從資料庫取得資料


Dim VbConnectionString As String = "資料庫連線字串設定方式請參考 "VB.NET 資料庫連線語法 I

首先是使用DataReader來取得資料,DataReader適合在取得的資料量不多的情形下使用
Using VbConn As SqlClient.SqlConnection = New SqlClient.SqlConnection(VbConnectionString)

   VbConn.Open()

   Using VbCommand As SqlClient.SqlCommand = VbConn.CreateCommand
     VbCommand.CommandText="SELECT * FROM Test"

     Using VbReader As SqlClient.SqlDataReader=VbCommand.ExecuteReader
         Dim GetData As String=""
         Do While VbReader.Read
             GetData= VbReader.Item("欄位名稱")
         Loop
       End Using
       'DataReader 一次只取得一行資料庫的資料,所以必須自行整理取得的資料。

     VbCommand.Cancel()
   End Using

End Using

再來是使用DataSet來取得資料,DataSet適合在取得的大量資料的情形下使用。
Dim MyDataSet As New DataSet
Dim GetData As String=""
Using VbConn As SqlClient.SqlConnection = New SqlClient.SqlConnection(VbConnectionString)

   Using Adp As New System.Data.SqlClient.SqlDataAdapter("SELECT * FROM Test", VbConn)
     Adp.Fill(MyDataSet)
   End Using

End Using

For i = 0 To MyDataSet.Tables(0).Rows.Count - 1 Step 1
   GetData = MyDataSet.Tables(0).Rows(i).Item("欄位名稱")
Next
'實際上就是系統自動使用DataReader把資料放入DataSet裡,取得資料後在使用DataSet來操作資料。

DataSet是由多個DataTable所組成的資料集合,所以也可以直接使用DataTable來取的資料
Dim MyDataTable As New DataTable
Dim GetData As String=""
Using VbConn As SqlClient.SqlConnection = New SqlClient.SqlConnection(VbConnectionString)

   Using Adp As New System.Data.SqlClient.SqlDataAdapter("SELECT * FROM Test", VbConn)
     Adp.Fill(MyDataTable)
   End Using

End Using

For i = 0 To MyDataTable.Rows.Count - 1 Step 1
   GetData = MyDataTable.Rows(i).Item("欄位名稱")
Next

2017/09/29

[ADO.NET] VB.net 資料庫連線 II

上一篇 VB.NET 資料庫連線 I 是最基本的連線方法。

事實上還可以使用 using.. End Using的方式讓.net自行管理資料庫的連線資源的釋放。

Dim VbConnectionString As String = "資料庫連線字串設定方式請參考 "VB.NET 資料庫連線語法 I


Using VbConn As SqlClient.SqlConnection = New SqlClient.SqlConnection(VbConnectionString)
   VbConn.Open()

   Using VbCommand As SqlClient.SqlCommand = VbConn.CreateCommand
     VbCommand.CommandText="SELECT * FROM Test"
     Dim ExecuteReturn As Integer = VbCommand.ExecuteNonQuery
     VbCommand.Cancel()
   End Using

End Using

2017/09/28

[ADO.NET] VB.NET 資料庫連線 I

開發系統一定避不開資料庫的連線與操作,留下紀錄方便以後查詢。


Dim VbConn As New System.Data.SqlClient.SqlConnection
Dim VbConnectionString As String = "Data Source=資料庫主機;Network Library=DBMSSOCN;Initial Catalog=資料庫;User ID=資料庫帳號;Password=資料庫帳號登入密碼;"

If VbConn.State = ConnectionState.Closed Then
   VbConn.ConnectionString = VbConnectionString
   VbConn.Open()
   Dim VbCommand As System.Data.SqlClient.SqlCommand = VbConn.CreateCommand
   VbCommand.CommandText="SELECT * FROM Test"
   Dim ExecuteReturn As Integer = VbCommand.ExecuteNonQuery
   VbCommand.Cancel()
   VbConn.Close()
End If


說明:

1.上述的語法,紅色的字需要填入自己的資料庫主機資料。
2.如果VbConn是全域變數,可以在執行連線前嘗試檢查是否已在離線狀態,避免重複連線。