1 / 18

Visual Basic 2010 ADO .NET 資料庫查詢

Visual Basic 2010 ADO .NET 資料庫查詢. Ren-Jie Wang, 王 仁 傑 , Ph.D. rjwang@nutc.edu.tw 課程網頁 : http://home.scs.nutc.edu.tw/rjwang/. 如何引用 ADO .NET 命名空間. .NET Framework 架構中是由所用資料庫 ( 資料來源 ) 來決定使用 SQL .NET Data Provider 或是 OLE DB .NET Data Provider 。 兩者 .NET Data Provider 分屬不同的命名空間

kelda
Download Presentation

Visual Basic 2010 ADO .NET 資料庫查詢

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visual Basic 2010ADO .NET資料庫查詢 Ren-Jie Wang,王 仁 傑, Ph.D. rjwang@nutc.edu.tw 課程網頁: http://home.scs.nutc.edu.tw/rjwang/

  2. 如何引用ADO .NET命名空間 • .NET Framework 架構中是由所用資料庫(資料來源)來決定使用 SQL .NET Data Provider 或是 OLE DB .NET Data Provider。 • 兩者 .NET Data Provider 分屬不同的命名空間 • 需使用 Imports敘述來引用對應 ADO .NET 的命名空間。 • 才能在撰寫程式時,使用簡潔 ADO .NET 物件來存取資料庫。

  3. System.Data.OleDb • 此命名空間允許連接到 OLE DB 這類型資料來源、接受 SQL 查詢和透過 Fill 方法,將資料填入 DataSet。 • 資料來源包括: Access、Excel、SQL Server 7.0 以上版本的資料庫…等。 • 在程式中用這類型資料庫,需在程式開頭用Imports敘述引用此命名空間,寫法: Imports System.Data.OleDb ‘ 引用OLE DB 資料來源的物件 • 在 OLE DB .NET Data Provider 下,所使用的 ADO .NET 物件名稱前面需加上 OleDb,如:OleDbConnection、OleDbCommand、OleDbDataReader… 等。

  4. System.Data.SqlClient • 此命名空間允許直接連接 SQL Server 7.0(含)以上版本的資料庫。 • 在程式中用此命名空間,需在程式開頭用 Imports 敘述含入 System.Data.SqlClient,寫法: Imports System.Data.SqlClient • 在 SQL .NET Data Provider 下,所用的 ADO .NET物件名稱的前面必須加上Sql。 • 如:SqlConnection、SqlCommand、SqlDataReader … 等

  5. 下表即是ADO .NET在各所屬命名空間中各類別命名對照表:

  6. .NET Framework Data Provider 與DataSet之間的架構

  7. 如何使用DataSet物件 • DataSet物件是一個記憶體中的資料庫,它採用離線存取資料庫的方式。 • DataSet中的資料更新完畢後,再重新和SQL Server資料庫進行連線,將資料全部一次更新到SQL Server資料庫中。 • DataSet執行效率佳,適用於多用戶端資料存取,但此種方式須耗費較多的記憶體空間。 • DataSet中可以包含一個以上的DataTable物件,DataTable物件相當於主記憶體中的一個資料表。 • DataAdapter物件是資料庫和DataSet之間溝通的橋樑。DataAdapter物件使用Command物件執行SQL命令,將由資料庫所擷取的資料送到DataSet,此時便可使用DataTable物件來存取資料表,將DataSet裡面的資料經過處理後再一次寫回資料庫。

  8. 如何建立DataSet物件讀取資料表記錄 • Step1: 建立ds屬於DataSet物件。 Dim ds As New DataSet() • Step2: 建立da屬於OleDbDataAdapter物件,並指定SQL查詢的是「data1」資料表,要連接的資料來源為應用程式組態檔app.config中的連線字串指定的資料庫。 Dim da As New OleDbDataAdapter(“SELECT * FROM data1”, My.Settings.連線字串名稱) • Step3: 使用DataAdapter物件的Fill方法,將查詢資料的結果放到DataSet物件中。此時DataSet物件中即會產生一個DataTable物件,該DataTable物件會以資料表的方式存放查詢資料的結果。 da.Fill(ds, "data1") • Step4: 建立dt屬於DataTable物件,並由 DataSet物件取出資料表 Dim dt As DataTable = ds.Tables("data1")

  9. 如何由DataTable物件讀取資料表記錄 • DataSet物件模型可以了解,在DataSet下包含很多子類別,如DataTable、DataColumn、DataRow…等。 • DataSet是記憶體的資料庫可用來存放多個DataTable物件。 • DataTable可用來存放資料表的多筆記錄資料、每一筆記錄稱為DataRow、DataRow的集合稱為DataRowCollection。 • DataTable包含DataColumnCollection集合,集合中的項目稱為DataColumn,DataColumn用來表示每一個欄位的資訊與資料型別。

  10. DataTable物件

  11. DataTable物件 • 取得DataTable物件dt的欄位總數。dt.Columns.Count • 取得DataTable物件dt的第j個的欄位名稱 (註標起始值為0)。dt.Columns(j).ColumnName • 取得DataTable物件dt的記錄資料總筆數。dt.Rows.Count • 取得DataTable物件dt的第i列某一個欄位的資料內容。dt.Rows(i)("欄位名稱“) • 取得DataTable物件dt的第i列第j欄的資料內容,註標起始值為0。dt.Rows(i)(j)

  12. 如何由DataTable物件讀取資料表記錄 • Case01: 取得DataTable物件的欄位名稱,寫法如下: • 使用Columns.Count取得欄位的總數,然後再利用for配合ColumnName來取得第i欄的欄位名稱,並放入TextBox1文字方塊控制項內。 For i As Integer = 0 To dt.Columns.Count - 1 TextBox1.Text &= dt.Columns(i).ColumnName& vbTab Next

  13. 如何由DataTable物件讀取資料表記錄 • Case02:取得DataTable物件的欄位資料,有下列兩種方法: • 使用巢狀迴圈來逐一取得DataTable物件第i列第j欄的資料,並放入TextBox1文字方塊控制項內,其寫法如下: For i As Integer = 0 To dt.Rows.Count - 1 For j As Integer = 0 To dt.Columns.Count - 1 TextBox1.Text &= dt.Rows(i)(j).ToString() & vbTab Next TextBox1.Text &= vbNewLine Next

  14. 使用巢狀迴圈來逐一取得DataTable物件第i列某一個欄位的資料,並放入TextBox1文字方塊控制項內,其寫法如下:使用巢狀迴圈來逐一取得DataTable物件第i列某一個欄位的資料,並放入TextBox1文字方塊控制項內,其寫法如下: For i As Integer = 0 To dt.Rows.Count - 1 TextBox1.Text &= dt.Rows(i)("欄位名稱1").ToString() & vbTab TextBox1.Text &= dt.Rows(i)("欄位名稱2").ToString() & vbTab TextBox1.Text &= dt.Rows(i)("欄位名稱3").ToString() & vbTab ………… TextBox1.Text &= dt.Rows(i)("欄位名稱N ").ToString() & vbTab TextBox1.Text &= vbNewLine Next

  15. SQL語法 • SQL(Structured Query Language:結構化查詢語言)是一套標準的資料庫管理與存取語言,它使用接近人類英文口語的方式來存取資料庫,而一般常見的 SQL Server資料庫 (如微軟的 Microsoft SQL Server ) 都支援 SQL語法,就連 Access 資料庫也可以使用 SQL 語法來存取。 • SQL 成為目前各類型資料庫中最為通用的資料庫存取語言。 • 了解SQL語法是學習資料庫程式設計的首要課題之一,撰寫SQL語法要注意的是,單引號括住的資料會被SQL語法視為字串,SQL語法沒有大寫小之分。 • 關於資料庫的操作(新增、修改、刪除…)或SQL等內容,時間有限,不在本課程介紹。

  16. SELECT敘述 • SQL語法中的SELECT敘述可根據WHERE子句所設定的條件式,對資料庫進行資料的查詢或排序工作,其語法如下: • 例如: Select * from [data1] order by [bno],[no] • 查詢data1資料表, 依欄位bno,no遞增排序 • 在程式中建議欄位名稱應加上[], 和變數名稱有所區別

  17. 實例演練 • 實作「軟體設計丙級學科檢定測驗程式」 • 示範如何查詢Access資料庫,並完成學科測驗程式。

More Related