




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、大連理工大學出版社高職教育出版中心大連理工大學出版社高職教育出版中心第第7 7章章 ADO.NET數據庫訪問技術數據庫訪問技術 2 2主要內容:主要內容:u數據控件訪問數據庫數據控件訪問數據庫uADO.Net數據庫訪問技術數據庫訪問技術u使用使用DataReader訪問數據庫訪問數據庫u使用使用DataAdapter和和DataSet訪問數據庫訪問數據庫目的要求:目的要求: 會利用數據控件訪問數據庫;會利用代碼訪問數據庫;會利用數據控件訪問數據庫;會利用代碼訪問數據庫;能瀏覽、查詢、刪除、修改能瀏覽、查詢、刪除、修改3 37.1 數據控件訪問數據庫數據控件訪問數據庫常用常用數據訪問控件數據訪問
2、控件 :(1)BindingSource控件:綁定數據源控件,用來綁定數控件:綁定數據源控件,用來綁定數據庫。據庫。(2)DataSet控件:數據集控件。控件:數據集控件。(3) DataGridView控件:數據網格視圖控件,該控件主控件:數據網格視圖控件,該控件主要以數據網格形式顯示后臺數據庫的數據。要以數據網格形式顯示后臺數據庫的數據。(4) BindingNavigator控件:數據導航條控件,該控件綁控件:數據導航條控件,該控件綁定數據源后,可實現數據導航。定數據源后,可實現數據導航。 4 4啟動數據源配置向導的常用方法:啟動數據源配置向導的常用方法:方法一:在方法一:在Visual
3、 Studio 2005中,單擊菜單【數據】中,單擊菜單【數據】|【添加新數據源】。【添加新數據源】。方法二:在方法二:在DataGridView控件的任務面板上控件的任務面板上“選擇選擇數據源數據源”下拉列表中單擊下拉列表中單擊“添加項目數據源添加項目數據源”。5 57.1 數據控件訪問數據庫數據控件訪問數據庫【實例【實例7-1】利用向導訪問】利用向導訪問Access數據庫數據庫1.新建項目新建項目2.添加添加【BindingSource】控件,單擊其】控件,單擊其DataSource屬屬性后的下拉按鈕,單擊性后的下拉按鈕,單擊【添加項目數據源】,啟用添加項目數據源】,啟用向導向導. . 6
4、 63.3.選選“數據庫數據庫”“下一步下一步” 4.“4.“新建連接新建連接” ” “ “更改更改” 7 7 5. 5.數據源選數據源選“Microsoft Access數據庫文件數據庫文件”“確定確定” 6.“6.“瀏覽瀏覽” ” 選數據庫文件選數據庫文件“確定確定” ” “下一步下一步”8 87. 選選“是是”將數據文件復制到項目中將數據文件復制到項目中8.單擊單擊 ”下一步下一步”,將連接字符串保存到應用程序配,將連接字符串保存到應用程序配置文件中。置文件中。9 99. 在如圖在如圖7-12所示的所示的“選擇數據庫對象選擇數據庫對象”對話框中,對話框中,選中選中“會員表會員表”,并單擊
5、,并單擊 【完成】按鈕。【完成】按鈕。101010. 10. 窗體上添加窗體上添加”DataGridViewDataGridView”控件控件, ,在其任務面板中在其任務面板中選數據庫表選數據庫表”MyuserMyuser”。11. 11. 運行運行注:利用注:利用DataGridViewDataGridView控件任務面板可添、刪列,設置列屬性。控件任務面板可添、刪列,設置列屬性。11117.1 數據控件訪問數據庫數據控件訪問數據庫【實例【實例7-2】利用向導訪問】利用向導訪問SQL Server數據庫數據庫1212主要設計步驟主要設計步驟: 1創建創建SQL Server數據庫。數據庫。
6、2設置數據庫的登錄驗證模式。設置數據庫的登錄驗證模式。 3新建項目。新建項目。 4啟動數據源配置向導。啟動數據源配置向導。 5添加并設置數據控件。添加并設置數據控件。 6. 添加代碼。添加代碼。 13137.2 常用常用SQL語句語句 SQL是結構化查詢語言(是結構化查詢語言(Structured Query Language)的縮寫,是一種完整的數據庫操作語)的縮寫,是一種完整的數據庫操作語言,目前已成為關系型數據庫的訪問標準。常見言,目前已成為關系型數據庫的訪問標準。常見的關系數據庫的關系數據庫Access、SQL Server等都支持等都支持SQL語語言。言。 SQL有有4種最基本的數據
7、操作語句:種最基本的數據操作語句:Select、Delete、Update、Insert,分別執行,分別執行4種基本操作:種基本操作:查詢、刪除、修改、插入。查詢、刪除、修改、插入。 14147.2.1 Select語句語句 Select 語句是語句是SQL語句中最常用的語句,用語句中最常用的語句,用于從數據庫中查詢數據。于從數據庫中查詢數據。 常用格式:常用格式: Select 字段列表字段列表 From 表或視圖列表表或視圖列表 Where 條件條件 Order By 字段字段1515【例【例1】Select * From 會員表會員表【例【例2】Select 姓名姓名,性別性別 From
8、會員表會員表【例【例3】Select * From 會員表會員表 Where 年齡年齡 23 【例【例4】Select * From 會員表會員表 Where 年齡年齡 Between 22 and 24【例【例5】Select * From 會員表會員表 Where 姓名姓名 like %李李%【例【例6】Select Top 5 * From 會員表會員表 Order By 年齡年齡 Desc16167.2.2 Delete語句語句 Delete語句用于從一個表中刪除符合條件的語句用于從一個表中刪除符合條件的記錄。記錄。 常用格式:常用格式: Delete From 表名表名 Where
9、條件條件【例【例7】Delete From 會員表會員表 where ID=10【例【例8】Delete From 會員表會員表17177.2.3 Update語句語句 Update語句用于修改數據表中一個或多個字語句用于修改數據表中一個或多個字段的值。段的值。 常用格式:常用格式:Update 表名表名 Set 字段字段1=字段字段1的值的值,字段字段2=字字段段2的值的值,Where 條件條件【例【例9】Update 會員表會員表 Set 姓名姓名=林娜林娜, 年齡年齡= 22 Where ID=218187.2.4 Insert語句語句 Insert語句用于向數據表中插入一條記錄。語句用
10、于向數據表中插入一條記錄。 常用格式:常用格式:Insert Into 表名表名(字段字段1,字段字段2, ) Values(字段字段1的值的值,字段字段2的值的值, )【例【例10】Insert into 會員表會員表(姓名姓名,性別性別,年齡年齡,Email) Values(張三張三, 男男, 23, ) 注注:“會員表會員表”中主鍵中主鍵ID為為“Int”型,且為型,且為“標標識識”,故不要給該字段賦值。,故不要給該字段賦值。 19197.3 ADO.NET概述概述ADO.NET ADO.NET 是是 Microsoft.NETMicrosoft.NET 框架引入的數據訪問組框架引入的數
11、據訪問組件,件,.NET .NET 框架提供了一組用于管理數據庫交互的框架提供了一組用于管理數據庫交互的對象;這些類統稱為對象;這些類統稱為 ADO.NETADO.NET。ADO.NET ADO.NET 的基本組件包括:的基本組件包括:DataSet DataSet 和和 .NET.NET數據提數據提供程序供程序. .NET數據提供程序包含數據提供程序包含4個核心對象:個核心對象:Connection對象、對象、Command對象、對象、DataReader對象和對象和DataAdapter對象對象 2020ADO.NET 的基本組件的基本組件DataSet2121ADO.NETADO.NET
12、訪問數據庫的方式訪問數據庫的方式: : (1)(1)利用利用DataReaderDataReader對象,這種方式只能讀取數據庫,不能對象,這種方式只能讀取數據庫,不能修改記錄。修改記錄。 (2)(2)利用利用DataAdapterDataAdapter和和DataSetDataSet對象,這種方式更靈活,可對象,這種方式更靈活,可對數據庫進行各種操作對數據庫進行各種操作。2222.NET.NET數據提供程序可用來連接數據庫,執行命令,獲取數據提供程序可用來連接數據庫,執行命令,獲取結果。結果。n訪問訪問SQL Server 7.0以上版本的數據庫,用以上版本的數據庫,用SQL Server
13、.NET數據提供程序,需要引用命名空間數據提供程序,需要引用命名空間System.Data.SqlClient;n訪問訪問Access數據庫,用數據庫,用OLE DB .NET數據提供程序,需數據提供程序,需要引用命名空間要引用命名空間System.Data.OleDB。 2323Connection、Command、DataReader 和和 DataAdapter 對象對象是是 .NET Framework 數據提供程序模型的核心元素。下表數據提供程序模型的核心元素。下表將描述這些對象。將描述這些對象。對象對象說明說明Connection建立與特定數據源的連接。建立與特定數據源的連接。Co
14、mmand對數據源執行命令。對數據源執行命令。DataReader從數據源中讀取只進且只讀的數據流。從數據源中讀取只進且只讀的數據流。DataAdapter用數據源填充用數據源填充 DataSet 并更新。并更新。24247.4.1 Connection對象對象u連接連接SQL Server(要引用要引用System.Data.SqlClient) 連接字符串連接字符串 2種寫法種寫法: “Server=服務器名服務器名;database=數據庫名數據庫名;uid=用戶名用戶名;Pwd=密碼密碼”; “Server=服務器名服務器名;database=數據庫名數據庫名; IntegretedS
15、ecurity=true; 創建連接格式:創建連接格式: SqlConnection 對象名對象名 = new SqlConnection(連接字符串連接字符串 ); 如:如: string strCon=“Server=. ;database=Mysql1 ;uid=sa;pwd=”; SqlConnection con = new SqlConnection(strCon ); 7.4 ADO.NET對象對象 2525l連接連接Access數據庫數據庫(要引入要引入System.Data.OLEDB) 連接字符串連接字符串 String strCon=“ Provider=Microsof
16、t.OLEDB.4.0;Data Source=數據庫名數據庫名” 創建連接格式:創建連接格式: OleDbConnection 對象名對象名 = new OleDbConnection(連接字連接字符串符串); 如如:String strCon=“ Provider=Microsoft.OLEDB.4.0;Data Source=db1.mdb” OleDbConnection con = new OleDbConnection(strCon);2626uConnection的兩個重要方法的兩個重要方法: Open( ) 方法:打開與數據庫表的連接方法:打開與數據庫表的連接 例:例:myco
17、nn.Open( ); Close( )方法方法: 關閉與數據庫表的連接關閉與數據庫表的連接 例:例:myconn.Close( )2727u使用使用Connection對象對象 Connection對象應用的一般步驟是:對象應用的一般步驟是: (1) 設置連接字符串;設置連接字符串; (2) 創建創建Connection類型的對象;類型的對象; (3) 打開數據源的連接;打開數據源的連接; (4) 執行數據庫的訪問操作代碼;執行數據庫的訪問操作代碼; (5) 關閉數據源連接。關閉數據源連接。【實例【實例7-3】連接】連接SQL Server數據庫數據庫28287.4.2 Command對象對
18、象與數據庫建立連接后,與數據庫建立連接后,Command對象使用對象使用SQL語句語句對數據庫進行操作并從數據源返回結果。對數據庫進行操作并從數據源返回結果。(1)創建創建Command實例實例 創建格式創建格式: SqlCommand 對象名對象名 = new SqlCommand(SQL語句語句, 連接名連接名); 如: string sql=“Select * from Myuser“; /SQL語句字符串語句字符串 SqlCommand cmd = new SqlCommand(sql, strCon); /創建創建 Command實例實例, 其中其中strCon 為連接字符串為連接字
19、符串2929(2) Command對象常用屬性對象常用屬性: nCommandText:欲執行的內容:欲執行的內容(SQL(SQL語句或存儲過程名稱語句或存儲過程名稱) )nConnection:使用的活動連接。:使用的活動連接。nCommandType:命令類型,默認為:命令類型,默認為TextText,也可以是:,也可以是: StoreProcedure(3) Command對象常用方法:對象常用方法:uExecuteReader():返回:返回DataReader類型值類型值 當用當用Select SQL語句進行記錄的查詢時用此方法語句進行記錄的查詢時用此方法uExecuteNonQue
20、ry():返回受影響的行數:返回受影響的行數 當用當用delete、insert、update等等SQL語句進行插、刪、改語句進行插、刪、改等操作時用此方法等操作時用此方法uExecuteScalar():返回第一行第一列:返回第一行第一列 當用當用SQL聚合函數進行數據統計時用此方法聚合函數進行數據統計時用此方法3030SQL命令的執行一般用命令的執行一般用ExecuteNonQuery( )方法方法, 用于記用于記錄的插、刪、改等操作,如:錄的插、刪、改等操作,如: myCommand. ExecuteNonQuery( ); /應先把連接打開應先把連接打開【示例【示例1】 SqlComm
21、and cmd=new SqlCommand(sql語句語句,連接名連接名);或或 SqlCommand cmd=new SqlCommand(); cmd.CommandText=“SQL語句語句”; cmd.Connection= sqlcon;【示例【示例2】 string sql=“insert into Myuser (姓名姓名,性別性別,年齡年齡,Email) values(王娜王娜,女女,23,)“ SqlCommand cmd = new SqlCommand(sql, sqlcon);31317.4.3 DataReader對象對象DataReader(數據讀取器數據讀取器)
22、主要應用在有連接的數據應用場主要應用在有連接的數據應用場合,它提供了快速的、只讀的、僅向前的數據訪問方式。合,它提供了快速的、只讀的、僅向前的數據訪問方式。3232DataReader對象的對象的 常用屬性常用屬性: uHasRows:是否含有一行或多行的值:是否含有一行或多行的值uFieldCount :當前行中的字段:當前行中的字段(列列)數數DataReader對象的常用方法:對象的常用方法:uClose :用于關閉:用于關閉 DataReader 對象對象 uRead:使:使 DataReader 前移到下一個記錄,返回值為前移到下一個記錄,返回值為true 或或 falseDataR
23、eader對象的創建格式對象的創建格式:SqlDataReader 對象名對象名 = SqlCommand對象對象.ExecuteReader();如:如:SqlDataReader dr = mycommand.ExecuteReader();33337.4.4 DataAdapter對象對象 DataAdapter(數據適配器數據適配器)是與數據集一起使用的對象,是與數據集一起使用的對象,和一個數據庫連接后用于填充數據集和更新數據源,它和一個數據庫連接后用于填充數據集和更新數據源,它主要用于管理與數據庫的連接、執行命令并向數據集返主要用于管理與數據庫的連接、執行命令并向數據集返回數據。回數
24、據。主要方法主要方法: Fill:將數據從數據源裝載到數據集中。:將數據從數據源裝載到數據集中。 Update:將:將DataSet里面的數值存儲到數據庫服務器上里面的數值存儲到數據庫服務器上主要屬性主要屬性: InsertCommand:插入新記錄的:插入新記錄的SQL語句或存儲過程語句或存儲過程UpdateCommand:更新記錄的:更新記錄的SQL語句或存儲過程語句或存儲過程DeleteCommand :刪除記錄的:刪除記錄的SQL語句或存儲過程語句或存儲過程SelectCommand :選擇記錄的:選擇記錄的SQL語句或存儲過程語句或存儲過程創建格式:創建格式:SqlDataAdapt
25、er 對象名對象名= new SqlDataAdapter(SQL語句語句, 連接名連接名);3434DataAdapter 對象對象 DataTableDataTableDataSetFillUpdateData sourceDataAdapterDataAdapterFillUpdate35357.4.5 數據集數據集DataSet 當向數據庫申請數據時,系統建立數據集和數據當向數據庫申請數據時,系統建立數據集和數據庫之間的連接。庫之間的連接。 ADO.NET向編程人員所提供的數據集對象是向編程人員所提供的數據集對象是DataSet。 DataSet對象是一個數據集,主要用來存放從數據庫對
26、象是一個數據集,主要用來存放從數據庫中取回的數據,可將中取回的數據,可將DataSet看作一個小型內存數據庫,看作一個小型內存數據庫,它包含表、列、行、約束和關系,這些它包含表、列、行、約束和關系,這些DataSet對象稱對象稱為為DataTable、DataColumn、DataRow、Constraint和和Relations。 DataSet對象在使用前必須創建對象在使用前必須創建 。 創建格式:創建格式:DataSet 對象名對象名=new DataSet(); 例例: DataSet myds=new DataSet();3636 DataSet 對象的對象的Tables屬性值是一個
27、屬性值是一個DataTable對象集,對象集,每個每個DataTable對象代表了數據庫中的一個表,而對象代表了數據庫中的一個表,而DataTable對象包含數據行的集合對象包含數據行的集合Rows、數據列的集合、數據列的集合Columns,因此可直接使用這些對象訪問數據集中的數,因此可直接使用這些對象訪問數據集中的數據據 。例。例: textBox1.Text=mydataSet.Tables“Myuser”.Rows0“姓姓名名”.ToString(); /顯示數據表顯示數據表“Myuser” 第一行中第一行中“姓名姓名”字段的值字段的值 textBox1.Text= ds.Tables“
28、Myuser”.Rows0.ItemArray1.ToString(); /顯示數據表顯示數據表“Myuser” 第一行第二列的值第一行第二列的值3737使用使用DataAdapter和和DataGridView顯示數據的過程顯示數據的過程n建立數據庫連接建立數據庫連接(Connection)(Connection)對象。對象。n使用使用SQLSQL語句和語句和ConnectionConnection對象建立數據適配器對象建立數據適配器(DataAdapter) (DataAdapter) n建立建立DataSetDataSet對象對象n使用使用DataAdapterDataAdapter進行
29、數據填充進行數據填充(Fill)(Fill)n將將DataSetDataSet綁定到綁定到DataGridViewDataGridView控件,就可在控件,就可在WinFormWinForm上上顯示數據顯示數據3838【實例【實例7-4】數據庫簡單操作】數據庫簡單操作 示例數據庫示例數據庫(Mysql1.mdf)(Mysql1.mdf)3939(1)【dataAdapter示例】選項卡的設計示例】選項卡的設計4040string strCon=server=.;database=Mysql1;uid=sa;pwd= ; /連接字符串SqlConnection con = new SqlConn
30、ection(strCon); /創建連接實例string sql=“Select * from Myuser“; /sql語句SqlDataAdapter da = new SqlDataAdapter(sql, con); /創建數據適配器實例DataSet ds = new DataSet(); /創建DataSet實例da.Fill(ds, Myuser);/填充數據集dataGridView1.DataSource = ds.Tables“Myuser”; /綁定數據為【加載數據】按鈕的為【加載數據】按鈕的Click事件添加如下代碼:事件添加如下代碼: 4141(2) 【DataRe
31、ader示例】選項卡的設計示例】選項卡的設計SqlConnection con = new SqlConnection(server=.;database=Mysql1;uid=sa;pwd= );SqlCommand cmd = new SqlCommand(Select * from Myuser, con);con.Open();/打開連接, 必須打開SqlDataReader dr = cmd .ExecuteReader(); richTextBox1.Text = “IDt姓名t性別t年齡tE-mailn”; / n表示換行 t表示制表位 while (dr.Read() rich
32、TextBox1.AppendText(drID.ToString() + t); richTextBox1.AppendText(dr姓名.ToString() + t); richTextBox1.AppendText(dr性別.ToString() + t); richTextBox1.AppendText(dr年齡.ToString() + t); richTextBox1.AppendText(drEmail.ToString() + tn); con.Close(); /關閉連接1.建連接建連接2.建命令建命令3.讀取數據讀取數據4242(3) 【插入示例】選項卡的設計插入示例】選
33、項卡的設計 4343 string sName=txtName.Text; string sSex=comboBoxSex.Text; string sAge=txtAge.Text; string sEmail=txtEmail.Text; SqlConnection con = new SqlConnection(server=.;database=Mysql1;uid=sa;pwd= ); SqlCommand com = new SqlCommand(, con); com.CommandText = insert into Myuser values( + sName + “ , +
34、 sSex + “ , + sAge + “ , + sEmail + “ ) ; con.Open();/打開連接 try com.ExecuteNonQuery(); MessageBox.Show(插入成功!); catch (Exception ex) MessageBox.Show(插入出錯!原因為:n + ex.Message); con.Close(); /關閉連接構造插入的構造插入的SQL語句語句4444(4) 【刪除修改示例刪除修改示例】選項卡的設計選項卡的設計4545SqlConnection con = new SqlConnection(server=.;databas
35、e=Mysql1;uid=sa;pwd= );String sql=select * from Myuser where ID=+txtID.Text;SqlCommand cmd = new SqlCommand(sql, con);cmd.CommandText =con.Open();/打開連接SqlDataReader dr = cmd.ExecuteReader();if (dr.Read() txtName1.Text = dr姓名.ToString(); comboBoxSex1.Text= dr性別.ToString(); txtAge1.Text = dr年齡.ToStrin
36、g(); txtEmail1.Text = drEmail.ToString(); else MessageBox.Show(學號為 + txtID0 + 的學生在數據庫中不存在!); dr.Close(); /關閉dr con.Close();/關閉連接查詢部分查詢部分4646 SqlConnection con = new SqlConnection(server=.;database=Mysql1;uid=sa;pwd= ); string sql = delete from Myuser where ID= + txtID0.Text; SqlCommand cmd = new SqlCommand(sql, con); con.Open();/打開連接 try cmd.ExecuteNonQuery(); MessageBox.Show(刪除成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共享充電寶項目發展規劃與市場分析
- 低空經濟產業園發展規劃與商業機會分析
- 學期德育活動的安排與實施計劃
- 如何評估生產計劃的有效性
- 2025年國際金融理財師考試預習方法與技巧試題及答案
- 品牌整合發展的戰略思考計劃
- 客戶關系管理系統使用培訓計劃
- 導航2025年國際金融理財師考試投資產品分析試題及答案
- 中醫護理在康復中的應用與總結計劃
- 打造友好前臺形象的技巧計劃
- MOOC 數據結構-西北大學 中國大學慕課答案
- 日本抵押貸款市場調研和分析報告(英文版)-2024年1月上傳培訓課件
- 多圖中華民族共同體概論課件第十一講 中華一家與中華民族格局底定(清前中期)根據高等教育出版社教材制作
- 人教版(部編版)小學語文五年級下冊期中復習課件1
- 牙周病學全套教學課件
- 酒店合作協議書酒店工程維修
- 《化解沖突收獲友誼》心理健康課件
- DB42-T 2185-2024 高速公路運營管理服務規范
- 寧德時代社招測評試題
- 長螺旋鉆孔壓灌樁施工組織方案
- 2024年江西南昌印鈔有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論