第15章 ADO.NET的資料庫存取 15-1 ADO.NET的基礎 15-2 建立SQL Server資料庫連接

Slides:



Advertisements
Similar presentations
第 8 章 ADO.NET 的網頁資料庫操 作 8-1 網頁資料庫的基礎 8-1 網頁資料庫的基礎 8-2 建立資料庫與新增 ODBC 8-2 建立資料庫與新增 ODBC 8-3 ADO.NET 的基礎 8-3 ADO.NET 的基礎 8-4 SQL 指令的資料庫操作 8-4 SQL 指令的資料庫操作.
Advertisements

ADO.NET – 连接数据库. 2 课程地位 STB SQL Server XML PSPM ASP.NET Oracle OOAD Computer Base HTML&JavaScript OOP\Java C C SQL Base JSP/Servlet EJB/WebService C#
教育技术装备统计系统 使用培训 教育部基础教育司 教育部教育管理信息中心.
第一單元 建立java 程式.
第十七章 ADO .NET資料庫連線與存取.
主讲:史治平 地址:四川电大计算机教研室 电话:
第7章利用ADO.NET 进行数据访问.
ASP.NET 網頁製作教本 – 從基本語法學起
ADO .NET 簡介.
Visual C# 2010 程式設計經典 第16章 ADO .NET資料庫 存取與交易處理.
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
Access数据库知识 安丘市职业中专 雷云龙.
第10章 儲存偏好設定、檔案與資料庫 10-1 儲存偏好設定 10-2 儲存至檔案 10-3 關聯式資料庫與SQLite
Chap 13 視界與資料庫程式設計.
內容 ADO.NET 架構 資料讀取 資料異動 DataSet 工具.
Visual C# 2010 程式設計經典 第15章 ADO .NET與資料工具.
LINQ 建國科技大學 資管系 饒瑞佶.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
連結資料庫 ACCESS MSSQL.
ADO.NET教學 資管所研一 曹明玉 93/4/28.
DataSet.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
ADO.NET.
資料庫操作.
主 讲 教 师:陆有军 Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军
課程名稱:資料庫系統 授課老師:李春雄 博士
第6章 ADO.NET数据访问接口 6.
上述代码规范了 INSERT 语句的编写规范,其中:
第2章 ADO.NET 2.0概述.
第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除
Controls.
第9章 ADO.NET的網頁資料庫查詢 9-1 從資料表取得單一欄位值 9-2 DataReader物件以表格顯示資料表
第8章 ADO.NET元件與資料繫結 8-1 資料庫的基礎 8-2 ASP.NET網頁資料庫
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
第9章 事务.
5.1.1 使用 ExecuteReader()操作数据库
操作数据库 C#程序设计课程组.
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
網頁切換移轉 JS vs. ASP.NET.
連結資料庫管理系統.
商用軟體 OFFICE 2003.
App Inventor2呼叫PHP存取MySQL
網頁切換移轉 JS vs. ASP.NET.
C# 程序设计教程 同济大学计算机系基础学科组
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
第一單元 建立java 程式.
TB-054A  周天穎 編著 儒林圖書公司 發行.
Ch20. 計算器 (Mac 版本).
第五讲 酒店客房管理系统(一) 教育部“十二五”职业教育国家规划教材
Pocket Access.
VB2005 DataBase Manipulation Command for Access
第 19 章 XML記憶體執行模式.
第十讲 学生成绩管理系统(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
第 10 章 ADO.NET與XML.
期末考.
Controls.
1 打开 SQL Server 2005 安装盘,单击 SPLASH.HTA 文件进行安装,安装界面如图所示。
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
MicroSim pspice.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
HOOK和数据库访问 主讲人:孙鑫
Access 2003 練習與作業
連結資料庫 MYSQL.
再戰DataSet.
SQLite資料庫 靜宜大學資管系 楊子青.
Develop and Build Drives by Visual C++ IDE
InputStreamReader Console Scanner
Presentation transcript:

第15章 ADO.NET的資料庫存取 15-1 ADO.NET的基礎 15-2 建立SQL Server資料庫連接 15-3 Command與DataReader物件 15-4 DataAdapter與DataSet物件

15-1 ADO.NET的基礎 15-1-1 認識ADO.NET 15-1-2 Windows Form的資料存取模型

15-1-1 認識ADO.NET-說明 資料存取(Data Access)是應用程式非常重要的觀念,Visual Basic應用程式可以使用ADO.NET元件,在.NET Framework平台存取資料庫儲存的記錄資料。 ADO.NET(ActiveX Data Objects.NET)是一種微軟的資料存取技術,可以使用一致的物件模型以.NET資料提供者(Data Provider)來存取資料來源的資料,也就是提供一致的資料處理方式,至於資料來源可以是資料庫、試算表、XML或文字檔案等,幾乎任何資料都可以。

15-1-1 認識ADO.NET-架構 ADO.NET在架構上主要分為兩大元件:DataSet和.NET資料提供者(Data Provider),如右圖所示:

15-1-1 認識ADO.NET-物件說明 物件 說明 Connection 建立與資料來源之間的連接 Command 針對資料來源下達指令,以資料庫來說,就是執行SQL指令敘述 DataReader 從資料來源使用Command物件執行指令,可以取得唯讀(Read-Only)和只能向前(Forward-Only)的串流資料,每一次只能從資料來源讀取一列資料(即一筆)儲存到記憶體,所以執行效率很高 DataSet DataSet物件是由DataTable物件組成的集合物件,簡單的說,DataSet物件就是儲存在記憶體中的資料庫 DataTable 在記憶體儲存一個資料表的記錄資料 DataRelation 在DataTable之間指定關聯性(Relationship)的物件 DataAdapter DataSet和Connection物件資料連接之間的橋樑,可以將資料表的記錄資料填入DataSet物件

15-1-1 認識ADO.NET-命名空間 命名空間 說明 System.Data 提供DataSet、DataTable、DataRow、DataView、DataColumn和DataRelation類別,可以將資料庫的記錄資料儲存到記憶體 System.Data.Common .NET資料提供者的共用類別庫,例如:DbConnection、DbCommand等,這些類別是特定資料提供者的父類別 System.Data.OleDb OLE DB的.NET資料提供者類別,提供類別來處理OLE DB資料來源的資料庫,例如:Access資料庫 System.Data.SqlClient SQL Server的.NET資料提供者,提供類別來處理微軟Microsoft SQL Server 7.0以上版本的資料庫 System.Data.Odbc ODBC的.NET資料提供者,提供類別來處理ODBC資料來源的資料庫 System.Data.OracleClient Oracle的.NET資料提供者,提供類別來處理甲骨文的Oracle資料庫 System.Data.SqlTypes SQL Server資料庫內建資料型別對應的.NET類別或結構

15-1-2 Windows Form的資料存取模型-說明 對於Visual Basic建立的視窗應用程式來說,我們使用ADO.NET元件的目的就是將取得的記錄資料顯示在表單的Windows Form控制項物件。ADO.NET針對Windows Form的資料存取模型,如下圖所示:

15-1-2 Windows Form的資料存取模型- 資料命令模型 資料命令模型是使用Connection物件建立與資料來源的資料連接後,使用Command物件執行指令來取得資料來源的資料,以SQL Server資料庫來說,就是執行T-SQL指令。 在取得資料來源的資料後,使用DataReader物件讀取資料,然後在Windows Form控制項顯示記錄資料。

15-1-2 Windows Form的資料存取模型- 資料集模型 資料集模型是在建立資料庫連接和取得資料來源的資料後,使用DataAdapter物件填入DataSet物件,最後以資料繫結技術,在Windows Form控制項顯示記錄資料。 因為資料集模型需要建立儲存在記憶體中的資料庫,即DataSet物件,所以可以同時處理多個資料表、建立關聯性和進行資料交換,當然也會比資料命令模型佔用較多的系統資源。

15-2 建立SQL Server資料庫連接- 說明 在Visual Basic程式碼使用ADO.NET物件時,我們可以在專案屬性頁勾選、或在類別與模組使用Imports關鍵字匯入SQL Server .NET資料提供者的命名空間,如下所示: Imports System.Data.SqlClient 在匯入後,就可以建立Connection物件來建立資料庫連接,其步驟如下所示: 步驟一:建立資料庫連接物件 步驟二:開啟資料庫連接 步驟三:顯示資料庫連接資訊 步驟四:關閉資料庫連接

15-2 建立SQL Server資料庫連接- 步驟一 在Visual Basic程式首先需要建立Connection物件來連接資料庫,如下所示: Dim objCon As SqlConnection objCon = New SqlConnection(strDbCon) 上述程式碼是使用New運算子建立名為objCon的SqlConnection物件,建構子參數是SQL Server Express資料庫連接字串,如下所示: strDbCon = "Data Source=(LocalDB)\MSSQLLocalDB;" & "AttachDbFilename=” & "|DataDirectory|\選課系統.mdf;" & ";Integrated Security=True"

15-2 建立SQL Server資料庫連接- 步驟二 在建立Connection物件後,就可以使用Open()方法開啟資料庫連接,如下所示; objCon.Open()

15-2 建立SQL Server資料庫連接- 步驟三 在開啟資料庫連接後,即可存取Connection物件的屬性來顯示連接資訊,如下所示; out = "連接字串: " & objCon.ConnectionString & vbNewLine out &= "連接狀態: " & objCon.State & vbNewLine out &= "資料庫: " & objCon.Database & vbNewLine out &= "伺服器版本: " & objCon.ServerVersion & vbNewLine 上述程式碼可以傳回連接的資料庫名稱和目前的連接狀態。

15-2 建立SQL Server資料庫連接- 步驟四 最後需要關閉Connection物件,使用的是Close()方法,如下所示: objCon.Close()

15-2 建立SQL Server資料庫連接- Visual Basic專案 Visual Basic專案:Ch15-2 在Windows應用程式測試連接SQL Server Express資料庫,可以顯示成功建立連接SQL Server資料庫檔案【選課系統.mdf】的連接資訊,如下圖所示:

15-3 Command與DataReader物件 15-3-1 使用Command物件執行SQL指令 15-3-2 執行SQL指令取得單一值 15-3-3 使用DataReader物件讀取記錄資料

15-3-1 使用Command物件執行SQL指令- 步驟一 步驟一:建立與開啟資料庫連接物件 在Visual Basic程式首先需要建立Connection物件來開啟資料庫連接,如下所示: Dim objCon As SqlConnection objCon = New SqlConnection(strDbCon) objCon.Open() 上述程式碼的建構子參數strDbCon是資料庫連接字串,然後使用Open()方法開啟資料庫連接。

15-3-1 使用Command物件執行SQL指令- 步驟二 Dim objCmd As SqlCommand objCmd = New SqlCommand(strSQL, objCon) 上述程式碼使用New運算子建立Command物件objCmd,其建構子參數分別是SQL指令字串和Connection物件objCon。

15-3-1 使用Command物件執行SQL指令- 步驟三 在建立Command物件後,就可以使用ExecuteNonQuery()方法執行建構子參數的SQL指令,如下所示; intRowsAffected = objCmd.ExecuteNonQuery() 上述程式碼可以執行SQL操作指令,傳回值是影響的記錄數。

15-3-1 使用Command物件執行SQL指令- 步驟四 步驟四:關閉資料庫連接 最後使用Close()方法關閉Connection物件,如下所示: objCon.Close()

15-3-1 使用Command物件執行SQL指令- Visual Basic專案 Visual Basic專案:Ch15-3-1 在Windows應用程式連接【選課系統.mdf】的SQL Server資料庫後,在【教授】資料表新增、更新和刪除記錄資料,如下圖所示:

15-3-2 執行SQL指令取得單一值-說明 ADO.NET的Command物件可以使用ExecuteScalar()方法取得單一欄位值,通常是使用在聚合函數的SQL查詢指令,可以取得查詢結果的COUNT()、SUM()、MAX()和MIN()等統計資料,如下所示: lblOutput.Text = objCmd.ExecuteScalar() 上述程式碼執行Command物件objCmd的SQL指令,如果傳回的值不只一筆記錄,取得的就是第一筆記錄的第一個欄位。

15-3-2 執行SQL指令取得單一值- Visual Basic專案 Visual Basic專案:Ch15-3-2 在Windows應用程式連接【選課系統.mdf】的SQL Server資料庫後,只需在文字方塊控制項輸入SQL查詢指令,就可以在下方標籤控制項顯示查詢結果的單一值,如下圖所示:

15-3-3 使用DataReader物件讀取記錄資料- 步驟一 步驟一:建立與開啟資料庫連接物件 在Visual Basic程式首先需要建立Connection物件來開啟資料庫連接,如下所示: Dim objCon As SqlConnection objCon = New SqlConnection(strDbCon) objCon.Open() 上述程式碼的建構子參數strDbCon是資料庫連接字串,使用Open()方法開啟資料庫連接。

15-3-3 使用DataReader物件讀取記錄資料- 步驟二 步驟二:建立Command物件 在開啟資料庫連接後,就可以建立Command物件,其建構子參數分別是SQL指令字串和Connection物件objCon,如下所示; Dim objCmd As SqlCommand objCmd = New SqlCommand(strSQL, objCon)

15-3-3 使用DataReader物件讀取記錄資料- 步驟三 在建立Command物件後,就可以使用ExecuteReader()方法執行SQL指令來取得DataReader物件,如下所示: Dim objDataReader As SqlDataReader objDataReader = objCmd.ExecuteReader() 上述程式碼取得DataReader物件objDataReader。

15-3-3 使用DataReader物件讀取記錄資料- 步驟四 步驟四:取出查詢結果的資料表記錄資料 在取得DataReader物件後,我們可以視為是開啟唯讀的DataReader檔案,只需配合Do While/Loop迴圈就可以讀取記錄資料,新增為ListBox控制項的項目,如下所示: If objDataReader.HasRows Then Do While objDataReader.Read() lstStudents.Items.Add( objDataReader.Item(0) & " - " & objDataReader.Item("姓名")) Loop End If

15-3-3 使用DataReader物件讀取記錄資料- 步驟五 最後使用Close()方法關閉DataReader和Connection物件,如下所示: objDataReader.Close() objCon.Close()

15-3-3 使用DataReader物件讀取記錄資料-Visual Basic專案 Visual Basic專案:Ch15-3-3 在Windows應用程式使用【學生】資料表的欄位新增成ListBox和ComboBox控制項的項目後,當選取項目,即可在下方顯示選擇的項目名稱,如下圖所示:

15-4 DataAdapter與DataSet物件- 步驟一 步驟一:建立與開啟Connection物件 首先使用Connection物件建立資料庫連接物件objCon後,使用Open()方法開啟資料庫連接,如下所示: Dim objCon As SqlConnection objCon = New SqlConnection(strDbCon) objCon.Open()

15-4 DataAdapter與DataSet物件- 步驟二 DataSet物件是使用DataAdapter物件來取得記錄資料,此物件是DataSet與資料來源間的橋樑,可以呼叫方法將記錄資料填入DataSet物件,如下所示: strSQL = "SELECT * FROM 教授" Dim objDataAdapter As SqlDataAdapter objDataAdapter = New SqlDataAdapter(strSQL, objCon)

15-4 DataAdapter與DataSet物件- 步驟三 接著建立DataSet物件,將取得的記錄資料填入DataSet物件,如下所示: Dim objDataSet As DataSet = New DataSet() objDataAdapter.Fill(objDataSet, "教授") 上述程式碼建立DataSet物件後,使用DataAdpater物件的Fill()方法將SQL指令的查詢結果填入第1個參數的DataSet物件。更正確的說,就是新增DataTable物件,第2個參數是DataTable物件的名稱。

15-4 DataAdapter與DataSet物件- 步驟四 步驟四:顯示DataTable物件的所有記錄 在使用DataAdapter物件將資料表的記錄填入DataSet後,就可以使用For Each/Next迴圈從DataTable的DataRowCollection集合物件,取出每一個DataRow物件的記錄,如下所示: For Each objDataRow In objDataSet.Tables("教授").Rows out &= objDataRow("教授編號") & " - " out &= objDataRow("教授姓名") & " - " out &= objDataRow("職稱") & " - " out &= objDataRow("科系") & vbNewLine Next

15-4 DataAdapter與DataSet物件- 步驟五 步驟五:關閉資料庫連接 最後使用Close()方法關閉資料連接,此例的Connection物件為objCon,如下所示: objCon.Close()

15-4 DataAdapter與DataSet物件- Visual Basic專案 Visual Basic專案:Ch15-4 在Windows應用程式建立DataSet物件,並且填入【教授】資料表的記錄資料後,就可以使用按鈕來瀏覽DataSet物件的記錄資料,如下圖所示:

End