版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、大連理工大學(xué)出版社高職教育出版中心大連理工大學(xué)出版社高職教育出版中心第第7 7章章 ADO.NET數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)數(shù)據(jù)庫(kù)訪問(wèn)技術(shù) 2 2主要內(nèi)容:主要內(nèi)容:u數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù)uADO.Net數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)u使用使用DataReader訪問(wèn)數(shù)據(jù)庫(kù)訪問(wèn)數(shù)據(jù)庫(kù)u使用使用DataAdapter和和DataSet訪問(wèn)數(shù)據(jù)庫(kù)訪問(wèn)數(shù)據(jù)庫(kù)目的要求:目的要求: 會(huì)利用數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù);會(huì)利用代碼訪問(wèn)數(shù)據(jù)庫(kù);會(huì)利用數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù);會(huì)利用代碼訪問(wèn)數(shù)據(jù)庫(kù);能瀏覽、查詢、刪除、修改能瀏覽、查詢、刪除、修改3 37.1 數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù)常用常用數(shù)據(jù)訪問(wèn)控件數(shù)據(jù)訪問(wèn)
2、控件 :(1)BindingSource控件:綁定數(shù)據(jù)源控件,用來(lái)綁定數(shù)控件:綁定數(shù)據(jù)源控件,用來(lái)綁定數(shù)據(jù)庫(kù)。據(jù)庫(kù)。(2)DataSet控件:數(shù)據(jù)集控件??丶簲?shù)據(jù)集控件。(3) DataGridView控件:數(shù)據(jù)網(wǎng)格視圖控件,該控件主控件:數(shù)據(jù)網(wǎng)格視圖控件,該控件主要以數(shù)據(jù)網(wǎng)格形式顯示后臺(tái)數(shù)據(jù)庫(kù)的數(shù)據(jù)。要以數(shù)據(jù)網(wǎng)格形式顯示后臺(tái)數(shù)據(jù)庫(kù)的數(shù)據(jù)。(4) BindingNavigator控件:數(shù)據(jù)導(dǎo)航條控件,該控件綁控件:數(shù)據(jù)導(dǎo)航條控件,該控件綁定數(shù)據(jù)源后,可實(shí)現(xiàn)數(shù)據(jù)導(dǎo)航。定數(shù)據(jù)源后,可實(shí)現(xiàn)數(shù)據(jù)導(dǎo)航。 4 4啟動(dòng)數(shù)據(jù)源配置向?qū)У某S梅椒ǎ簡(jiǎn)?dòng)數(shù)據(jù)源配置向?qū)У某S梅椒ǎ悍椒ㄒ唬涸诜椒ㄒ唬涸赩isual
3、 Studio 2005中,單擊菜單【數(shù)據(jù)】中,單擊菜單【數(shù)據(jù)】|【添加新數(shù)據(jù)源】?!咎砑有聰?shù)據(jù)源】。方法二:在方法二:在DataGridView控件的任務(wù)面板上控件的任務(wù)面板上“選擇選擇數(shù)據(jù)源數(shù)據(jù)源”下拉列表中單擊下拉列表中單擊“添加項(xiàng)目數(shù)據(jù)源添加項(xiàng)目數(shù)據(jù)源”。5 57.1 數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù)【實(shí)例【實(shí)例7-1】利用向?qū)гL問(wèn)】利用向?qū)гL問(wèn)Access數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)1.新建項(xiàng)目新建項(xiàng)目2.添加添加【BindingSource】控件,單擊其】控件,單擊其DataSource屬屬性后的下拉按鈕,單擊性后的下拉按鈕,單擊【添加項(xiàng)目數(shù)據(jù)源】,啟用添加項(xiàng)目數(shù)據(jù)源】,啟用向?qū)驅(qū)? . 6
4、 63.3.選選“數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)”“下一步下一步” 4.“4.“新建連接新建連接” ” “ “更改更改” 7 7 5. 5.數(shù)據(jù)源選數(shù)據(jù)源選“Microsoft Access數(shù)據(jù)庫(kù)文件數(shù)據(jù)庫(kù)文件”“確定確定” 6.“6.“瀏覽瀏覽” ” 選數(shù)據(jù)庫(kù)文件選數(shù)據(jù)庫(kù)文件“確定確定” ” “下一步下一步”8 87. 選選“是是”將數(shù)據(jù)文件復(fù)制到項(xiàng)目中將數(shù)據(jù)文件復(fù)制到項(xiàng)目中8.單擊單擊 ”下一步下一步”,將連接字符串保存到應(yīng)用程序配,將連接字符串保存到應(yīng)用程序配置文件中。置文件中。9 99. 在如圖在如圖7-12所示的所示的“選擇數(shù)據(jù)庫(kù)對(duì)象選擇數(shù)據(jù)庫(kù)對(duì)象”對(duì)話框中,對(duì)話框中,選中選中“會(huì)員表會(huì)員表”,并單擊
5、,并單擊 【完成】按鈕。【完成】按鈕。101010. 10. 窗體上添加窗體上添加”DataGridViewDataGridView”控件控件, ,在其任務(wù)面板中在其任務(wù)面板中選數(shù)據(jù)庫(kù)表選數(shù)據(jù)庫(kù)表”MyuserMyuser”。11. 11. 運(yùn)行運(yùn)行注:利用注:利用DataGridViewDataGridView控件任務(wù)面板可添、刪列,設(shè)置列屬性。控件任務(wù)面板可添、刪列,設(shè)置列屬性。11117.1 數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù)【實(shí)例【實(shí)例7-2】利用向?qū)гL問(wèn)】利用向?qū)гL問(wèn)SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)1212主要設(shè)計(jì)步驟主要設(shè)計(jì)步驟: 1創(chuàng)建創(chuàng)建SQL Server數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)。
6、2設(shè)置數(shù)據(jù)庫(kù)的登錄驗(yàn)證模式。設(shè)置數(shù)據(jù)庫(kù)的登錄驗(yàn)證模式。 3新建項(xiàng)目。新建項(xiàng)目。 4啟動(dòng)數(shù)據(jù)源配置向?qū)?。啟?dòng)數(shù)據(jù)源配置向?qū)А?5添加并設(shè)置數(shù)據(jù)控件。添加并設(shè)置數(shù)據(jù)控件。 6. 添加代碼。添加代碼。 13137.2 常用常用SQL語(yǔ)句語(yǔ)句 SQL是結(jié)構(gòu)化查詢語(yǔ)言(是結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)的縮寫,是一種完整的數(shù)據(jù)庫(kù)操作語(yǔ))的縮寫,是一種完整的數(shù)據(jù)庫(kù)操作語(yǔ)言,目前已成為關(guān)系型數(shù)據(jù)庫(kù)的訪問(wèn)標(biāo)準(zhǔn)。常見(jiàn)言,目前已成為關(guān)系型數(shù)據(jù)庫(kù)的訪問(wèn)標(biāo)準(zhǔn)。常見(jiàn)的關(guān)系數(shù)據(jù)庫(kù)的關(guān)系數(shù)據(jù)庫(kù)Access、SQL Server等都支持等都支持SQL語(yǔ)語(yǔ)言。言。 SQL有有4種最基本的數(shù)據(jù)
7、操作語(yǔ)句:種最基本的數(shù)據(jù)操作語(yǔ)句:Select、Delete、Update、Insert,分別執(zhí)行,分別執(zhí)行4種基本操作:種基本操作:查詢、刪除、修改、插入。查詢、刪除、修改、插入。 14147.2.1 Select語(yǔ)句語(yǔ)句 Select 語(yǔ)句是語(yǔ)句是SQL語(yǔ)句中最常用的語(yǔ)句,用語(yǔ)句中最常用的語(yǔ)句,用于從數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)。于從數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)。 常用格式:常用格式: Select 字段列表字段列表 From 表或視圖列表表或視圖列表 Where 條件條件 Order By 字段字段1515【例【例1】Select * From 會(huì)員表會(huì)員表【例【例2】Select 姓名姓名,性別性別 From
8、會(huì)員表會(huì)員表【例【例3】Select * From 會(huì)員表會(huì)員表 Where 年齡年齡 23 【例【例4】Select * From 會(huì)員表會(huì)員表 Where 年齡年齡 Between 22 and 24【例【例5】Select * From 會(huì)員表會(huì)員表 Where 姓名姓名 like %李李%【例【例6】Select Top 5 * From 會(huì)員表會(huì)員表 Order By 年齡年齡 Desc16167.2.2 Delete語(yǔ)句語(yǔ)句 Delete語(yǔ)句用于從一個(gè)表中刪除符合條件的語(yǔ)句用于從一個(gè)表中刪除符合條件的記錄。記錄。 常用格式:常用格式: Delete From 表名表名 Where
9、條件條件【例【例7】Delete From 會(huì)員表會(huì)員表 where ID=10【例【例8】Delete From 會(huì)員表會(huì)員表17177.2.3 Update語(yǔ)句語(yǔ)句 Update語(yǔ)句用于修改數(shù)據(jù)表中一個(gè)或多個(gè)字語(yǔ)句用于修改數(shù)據(jù)表中一個(gè)或多個(gè)字段的值。段的值。 常用格式:常用格式:Update 表名表名 Set 字段字段1=字段字段1的值的值,字段字段2=字字段段2的值的值,Where 條件條件【例【例9】Update 會(huì)員表會(huì)員表 Set 姓名姓名=林娜林娜, 年齡年齡= 22 Where ID=218187.2.4 Insert語(yǔ)句語(yǔ)句 Insert語(yǔ)句用于向數(shù)據(jù)表中插入一條記錄。語(yǔ)句用
10、于向數(shù)據(jù)表中插入一條記錄。 常用格式:常用格式:Insert Into 表名表名(字段字段1,字段字段2, ) Values(字段字段1的值的值,字段字段2的值的值, )【例【例10】Insert into 會(huì)員表會(huì)員表(姓名姓名,性別性別,年齡年齡,Email) Values(張三張三, 男男, 23, ) 注注:“會(huì)員表會(huì)員表”中主鍵中主鍵ID為為“Int”型,且為型,且為“標(biāo)標(biāo)識(shí)識(shí)”,故不要給該字段賦值。,故不要給該字段賦值。 19197.3 ADO.NET概述概述ADO.NET ADO.NET 是是 Microsoft.NETMicrosoft.NET 框架引入的數(shù)據(jù)訪問(wèn)組框架引入的數(shù)
11、據(jù)訪問(wèn)組件,件,.NET .NET 框架提供了一組用于管理數(shù)據(jù)庫(kù)交互的框架提供了一組用于管理數(shù)據(jù)庫(kù)交互的對(duì)象;這些類統(tǒng)稱為對(duì)象;這些類統(tǒng)稱為 ADO.NETADO.NET。ADO.NET ADO.NET 的基本組件包括:的基本組件包括:DataSet DataSet 和和 .NET.NET數(shù)據(jù)提數(shù)據(jù)提供程序供程序. .NET數(shù)據(jù)提供程序包含數(shù)據(jù)提供程序包含4個(gè)核心對(duì)象:個(gè)核心對(duì)象:Connection對(duì)象、對(duì)象、Command對(duì)象、對(duì)象、DataReader對(duì)象和對(duì)象和DataAdapter對(duì)象對(duì)象 2020ADO.NET 的基本組件的基本組件DataSet2121ADO.NETADO.NET
12、訪問(wèn)數(shù)據(jù)庫(kù)的方式訪問(wèn)數(shù)據(jù)庫(kù)的方式: : (1)(1)利用利用DataReaderDataReader對(duì)象,這種方式只能讀取數(shù)據(jù)庫(kù),不能對(duì)象,這種方式只能讀取數(shù)據(jù)庫(kù),不能修改記錄。修改記錄。 (2)(2)利用利用DataAdapterDataAdapter和和DataSetDataSet對(duì)象,這種方式更靈活,可對(duì)象,這種方式更靈活,可對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種操作對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種操作。2222.NET.NET數(shù)據(jù)提供程序可用來(lái)連接數(shù)據(jù)庫(kù),執(zhí)行命令,獲取數(shù)據(jù)提供程序可用來(lái)連接數(shù)據(jù)庫(kù),執(zhí)行命令,獲取結(jié)果。結(jié)果。n訪問(wèn)訪問(wèn)SQL Server 7.0以上版本的數(shù)據(jù)庫(kù),用以上版本的數(shù)據(jù)庫(kù),用SQL Server
13、.NET數(shù)據(jù)提供程序,需要引用命名空間數(shù)據(jù)提供程序,需要引用命名空間System.Data.SqlClient;n訪問(wèn)訪問(wèn)Access數(shù)據(jù)庫(kù),用數(shù)據(jù)庫(kù),用OLE DB .NET數(shù)據(jù)提供程序,需數(shù)據(jù)提供程序,需要引用命名空間要引用命名空間System.Data.OleDB。 2323Connection、Command、DataReader 和和 DataAdapter 對(duì)象對(duì)象是是 .NET Framework 數(shù)據(jù)提供程序模型的核心元素。下表數(shù)據(jù)提供程序模型的核心元素。下表將描述這些對(duì)象。將描述這些對(duì)象。對(duì)象對(duì)象說(shuō)明說(shuō)明Connection建立與特定數(shù)據(jù)源的連接。建立與特定數(shù)據(jù)源的連接。Co
14、mmand對(duì)數(shù)據(jù)源執(zhí)行命令。對(duì)數(shù)據(jù)源執(zhí)行命令。DataReader從數(shù)據(jù)源中讀取只進(jìn)且只讀的數(shù)據(jù)流。從數(shù)據(jù)源中讀取只進(jìn)且只讀的數(shù)據(jù)流。DataAdapter用數(shù)據(jù)源填充用數(shù)據(jù)源填充 DataSet 并更新。并更新。24247.4.1 Connection對(duì)象對(duì)象u連接連接SQL Server(要引用要引用System.Data.SqlClient) 連接字符串連接字符串 2種寫法種寫法: “Server=服務(wù)器名服務(wù)器名;database=數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名;uid=用戶名用戶名;Pwd=密碼密碼”; “Server=服務(wù)器名服務(wù)器名;database=數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名; IntegretedS
15、ecurity=true; 創(chuàng)建連接格式:創(chuàng)建連接格式: SqlConnection 對(duì)象名對(duì)象名 = new SqlConnection(連接字符串連接字符串 ); 如:如: string strCon=“Server=. ;database=Mysql1 ;uid=sa;pwd=”; SqlConnection con = new SqlConnection(strCon ); 7.4 ADO.NET對(duì)象對(duì)象 2525l連接連接Access數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(要引入要引入System.Data.OLEDB) 連接字符串連接字符串 String strCon=“ Provider=Microsof
16、t.OLEDB.4.0;Data Source=數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名” 創(chuàng)建連接格式:創(chuàng)建連接格式: OleDbConnection 對(duì)象名對(duì)象名 = new OleDbConnection(連接字連接字符串符串); 如如:String strCon=“ Provider=Microsoft.OLEDB.4.0;Data Source=db1.mdb” OleDbConnection con = new OleDbConnection(strCon);2626uConnection的兩個(gè)重要方法的兩個(gè)重要方法: Open( ) 方法:打開(kāi)與數(shù)據(jù)庫(kù)表的連接方法:打開(kāi)與數(shù)據(jù)庫(kù)表的連接 例:例:myco
17、nn.Open( ); Close( )方法方法: 關(guān)閉與數(shù)據(jù)庫(kù)表的連接關(guān)閉與數(shù)據(jù)庫(kù)表的連接 例:例:myconn.Close( )2727u使用使用Connection對(duì)象對(duì)象 Connection對(duì)象應(yīng)用的一般步驟是:對(duì)象應(yīng)用的一般步驟是: (1) 設(shè)置連接字符串;設(shè)置連接字符串; (2) 創(chuàng)建創(chuàng)建Connection類型的對(duì)象;類型的對(duì)象; (3) 打開(kāi)數(shù)據(jù)源的連接;打開(kāi)數(shù)據(jù)源的連接; (4) 執(zhí)行數(shù)據(jù)庫(kù)的訪問(wèn)操作代碼;執(zhí)行數(shù)據(jù)庫(kù)的訪問(wèn)操作代碼; (5) 關(guān)閉數(shù)據(jù)源連接。關(guān)閉數(shù)據(jù)源連接。【實(shí)例【實(shí)例7-3】連接】連接SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)28287.4.2 Command對(duì)象對(duì)
18、象與數(shù)據(jù)庫(kù)建立連接后,與數(shù)據(jù)庫(kù)建立連接后,Command對(duì)象使用對(duì)象使用SQL語(yǔ)句語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作并從數(shù)據(jù)源返回結(jié)果。對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作并從數(shù)據(jù)源返回結(jié)果。(1)創(chuàng)建創(chuàng)建Command實(shí)例實(shí)例 創(chuàng)建格式創(chuàng)建格式: SqlCommand 對(duì)象名對(duì)象名 = new SqlCommand(SQL語(yǔ)句語(yǔ)句, 連接名連接名); 如: string sql=“Select * from Myuser“; /SQL語(yǔ)句字符串語(yǔ)句字符串 SqlCommand cmd = new SqlCommand(sql, strCon); /創(chuàng)建創(chuàng)建 Command實(shí)例實(shí)例, 其中其中strCon 為連接字符串為連接字
19、符串2929(2) Command對(duì)象常用屬性對(duì)象常用屬性: nCommandText:欲執(zhí)行的內(nèi)容:欲執(zhí)行的內(nèi)容(SQL(SQL語(yǔ)句或存儲(chǔ)過(guò)程名稱語(yǔ)句或存儲(chǔ)過(guò)程名稱) )nConnection:使用的活動(dòng)連接。:使用的活動(dòng)連接。nCommandType:命令類型,默認(rèn)為:命令類型,默認(rèn)為TextText,也可以是:,也可以是: StoreProcedure(3) Command對(duì)象常用方法:對(duì)象常用方法:uExecuteReader():返回:返回DataReader類型值類型值 當(dāng)用當(dāng)用Select SQL語(yǔ)句進(jìn)行記錄的查詢時(shí)用此方法語(yǔ)句進(jìn)行記錄的查詢時(shí)用此方法uExecuteNonQue
20、ry():返回受影響的行數(shù):返回受影響的行數(shù) 當(dāng)用當(dāng)用delete、insert、update等等SQL語(yǔ)句進(jìn)行插、刪、改語(yǔ)句進(jìn)行插、刪、改等操作時(shí)用此方法等操作時(shí)用此方法uExecuteScalar():返回第一行第一列:返回第一行第一列 當(dāng)用當(dāng)用SQL聚合函數(shù)進(jìn)行數(shù)據(jù)統(tǒng)計(jì)時(shí)用此方法聚合函數(shù)進(jìn)行數(shù)據(jù)統(tǒng)計(jì)時(shí)用此方法3030SQL命令的執(zhí)行一般用命令的執(zhí)行一般用ExecuteNonQuery( )方法方法, 用于記用于記錄的插、刪、改等操作,如:錄的插、刪、改等操作,如: myCommand. ExecuteNonQuery( ); /應(yīng)先把連接打開(kāi)應(yīng)先把連接打開(kāi)【示例【示例1】 SqlComm
21、and cmd=new SqlCommand(sql語(yǔ)句語(yǔ)句,連接名連接名);或或 SqlCommand cmd=new SqlCommand(); cmd.CommandText=“SQL語(yǔ)句語(yǔ)句”; cmd.Connection= sqlcon;【示例【示例2】 string sql=“insert into Myuser (姓名姓名,性別性別,年齡年齡,Email) values(王娜王娜,女女,23,)“ SqlCommand cmd = new SqlCommand(sql, sqlcon);31317.4.3 DataReader對(duì)象對(duì)象DataReader(數(shù)據(jù)讀取器數(shù)據(jù)讀取器)
22、主要應(yīng)用在有連接的數(shù)據(jù)應(yīng)用場(chǎng)主要應(yīng)用在有連接的數(shù)據(jù)應(yīng)用場(chǎng)合,它提供了快速的、只讀的、僅向前的數(shù)據(jù)訪問(wèn)方式。合,它提供了快速的、只讀的、僅向前的數(shù)據(jù)訪問(wèn)方式。3232DataReader對(duì)象的對(duì)象的 常用屬性常用屬性: uHasRows:是否含有一行或多行的值:是否含有一行或多行的值uFieldCount :當(dāng)前行中的字段:當(dāng)前行中的字段(列列)數(shù)數(shù)DataReader對(duì)象的常用方法:對(duì)象的常用方法:uClose :用于關(guān)閉:用于關(guān)閉 DataReader 對(duì)象對(duì)象 uRead:使:使 DataReader 前移到下一個(gè)記錄,返回值為前移到下一個(gè)記錄,返回值為true 或或 falseDataR
23、eader對(duì)象的創(chuàng)建格式對(duì)象的創(chuàng)建格式:SqlDataReader 對(duì)象名對(duì)象名 = SqlCommand對(duì)象對(duì)象.ExecuteReader();如:如:SqlDataReader dr = mycommand.ExecuteReader();33337.4.4 DataAdapter對(duì)象對(duì)象 DataAdapter(數(shù)據(jù)適配器數(shù)據(jù)適配器)是與數(shù)據(jù)集一起使用的對(duì)象,是與數(shù)據(jù)集一起使用的對(duì)象,和一個(gè)數(shù)據(jù)庫(kù)連接后用于填充數(shù)據(jù)集和更新數(shù)據(jù)源,它和一個(gè)數(shù)據(jù)庫(kù)連接后用于填充數(shù)據(jù)集和更新數(shù)據(jù)源,它主要用于管理與數(shù)據(jù)庫(kù)的連接、執(zhí)行命令并向數(shù)據(jù)集返主要用于管理與數(shù)據(jù)庫(kù)的連接、執(zhí)行命令并向數(shù)據(jù)集返回?cái)?shù)據(jù)。回?cái)?shù)
24、據(jù)。主要方法主要方法: Fill:將數(shù)據(jù)從數(shù)據(jù)源裝載到數(shù)據(jù)集中。:將數(shù)據(jù)從數(shù)據(jù)源裝載到數(shù)據(jù)集中。 Update:將:將DataSet里面的數(shù)值存儲(chǔ)到數(shù)據(jù)庫(kù)服務(wù)器上里面的數(shù)值存儲(chǔ)到數(shù)據(jù)庫(kù)服務(wù)器上主要屬性主要屬性: InsertCommand:插入新記錄的:插入新記錄的SQL語(yǔ)句或存儲(chǔ)過(guò)程語(yǔ)句或存儲(chǔ)過(guò)程UpdateCommand:更新記錄的:更新記錄的SQL語(yǔ)句或存儲(chǔ)過(guò)程語(yǔ)句或存儲(chǔ)過(guò)程DeleteCommand :刪除記錄的:刪除記錄的SQL語(yǔ)句或存儲(chǔ)過(guò)程語(yǔ)句或存儲(chǔ)過(guò)程SelectCommand :選擇記錄的:選擇記錄的SQL語(yǔ)句或存儲(chǔ)過(guò)程語(yǔ)句或存儲(chǔ)過(guò)程創(chuàng)建格式:創(chuàng)建格式:SqlDataAdapt
25、er 對(duì)象名對(duì)象名= new SqlDataAdapter(SQL語(yǔ)句語(yǔ)句, 連接名連接名);3434DataAdapter 對(duì)象對(duì)象 DataTableDataTableDataSetFillUpdateData sourceDataAdapterDataAdapterFillUpdate35357.4.5 數(shù)據(jù)集數(shù)據(jù)集DataSet 當(dāng)向數(shù)據(jù)庫(kù)申請(qǐng)數(shù)據(jù)時(shí),系統(tǒng)建立數(shù)據(jù)集和數(shù)據(jù)當(dāng)向數(shù)據(jù)庫(kù)申請(qǐng)數(shù)據(jù)時(shí),系統(tǒng)建立數(shù)據(jù)集和數(shù)據(jù)庫(kù)之間的連接。庫(kù)之間的連接。 ADO.NET向編程人員所提供的數(shù)據(jù)集對(duì)象是向編程人員所提供的數(shù)據(jù)集對(duì)象是DataSet。 DataSet對(duì)象是一個(gè)數(shù)據(jù)集,主要用來(lái)存放從數(shù)據(jù)庫(kù)對(duì)
26、象是一個(gè)數(shù)據(jù)集,主要用來(lái)存放從數(shù)據(jù)庫(kù)中取回的數(shù)據(jù),可將中取回的數(shù)據(jù),可將DataSet看作一個(gè)小型內(nèi)存數(shù)據(jù)庫(kù),看作一個(gè)小型內(nèi)存數(shù)據(jù)庫(kù),它包含表、列、行、約束和關(guān)系,這些它包含表、列、行、約束和關(guān)系,這些DataSet對(duì)象稱對(duì)象稱為為DataTable、DataColumn、DataRow、Constraint和和Relations。 DataSet對(duì)象在使用前必須創(chuàng)建對(duì)象在使用前必須創(chuàng)建 。 創(chuàng)建格式:創(chuàng)建格式:DataSet 對(duì)象名對(duì)象名=new DataSet(); 例例: DataSet myds=new DataSet();3636 DataSet 對(duì)象的對(duì)象的Tables屬性值是一個(gè)
27、屬性值是一個(gè)DataTable對(duì)象集,對(duì)象集,每個(gè)每個(gè)DataTable對(duì)象代表了數(shù)據(jù)庫(kù)中的一個(gè)表,而對(duì)象代表了數(shù)據(jù)庫(kù)中的一個(gè)表,而DataTable對(duì)象包含數(shù)據(jù)行的集合對(duì)象包含數(shù)據(jù)行的集合Rows、數(shù)據(jù)列的集合、數(shù)據(jù)列的集合Columns,因此可直接使用這些對(duì)象訪問(wèn)數(shù)據(jù)集中的數(shù),因此可直接使用這些對(duì)象訪問(wèn)數(shù)據(jù)集中的數(shù)據(jù)據(jù) 。例。例: textBox1.Text=mydataSet.Tables“Myuser”.Rows0“姓姓名名”.ToString(); /顯示數(shù)據(jù)表顯示數(shù)據(jù)表“Myuser” 第一行中第一行中“姓名姓名”字段的值字段的值 textBox1.Text= ds.Tables“
28、Myuser”.Rows0.ItemArray1.ToString(); /顯示數(shù)據(jù)表顯示數(shù)據(jù)表“Myuser” 第一行第二列的值第一行第二列的值3737使用使用DataAdapter和和DataGridView顯示數(shù)據(jù)的過(guò)程顯示數(shù)據(jù)的過(guò)程n建立數(shù)據(jù)庫(kù)連接建立數(shù)據(jù)庫(kù)連接(Connection)(Connection)對(duì)象。對(duì)象。n使用使用SQLSQL語(yǔ)句和語(yǔ)句和ConnectionConnection對(duì)象建立數(shù)據(jù)適配器對(duì)象建立數(shù)據(jù)適配器(DataAdapter) (DataAdapter) n建立建立DataSetDataSet對(duì)象對(duì)象n使用使用DataAdapterDataAdapter進(jìn)行
29、數(shù)據(jù)填充進(jìn)行數(shù)據(jù)填充(Fill)(Fill)n將將DataSetDataSet綁定到綁定到DataGridViewDataGridView控件,就可在控件,就可在WinFormWinForm上上顯示數(shù)據(jù)顯示數(shù)據(jù)3838【實(shí)例【實(shí)例7-4】數(shù)據(jù)庫(kù)簡(jiǎn)單操作】數(shù)據(jù)庫(kù)簡(jiǎn)單操作 示例數(shù)據(jù)庫(kù)示例數(shù)據(jù)庫(kù)(Mysql1.mdf)(Mysql1.mdf)3939(1)【dataAdapter示例】選項(xiàng)卡的設(shè)計(jì)示例】選項(xiàng)卡的設(shè)計(jì)4040string strCon=server=.;database=Mysql1;uid=sa;pwd= ; /連接字符串SqlConnection con = new SqlConn
30、ection(strCon); /創(chuàng)建連接實(shí)例string sql=“Select * from Myuser“; /sql語(yǔ)句SqlDataAdapter da = new SqlDataAdapter(sql, con); /創(chuàng)建數(shù)據(jù)適配器實(shí)例DataSet ds = new DataSet(); /創(chuàng)建DataSet實(shí)例da.Fill(ds, Myuser);/填充數(shù)據(jù)集dataGridView1.DataSource = ds.Tables“Myuser”; /綁定數(shù)據(jù)為【加載數(shù)據(jù)】按鈕的為【加載數(shù)據(jù)】按鈕的Click事件添加如下代碼:事件添加如下代碼: 4141(2) 【DataRe
31、ader示例】選項(xiàng)卡的設(shè)計(jì)示例】選項(xiàng)卡的設(shè)計(jì)SqlConnection con = new SqlConnection(server=.;database=Mysql1;uid=sa;pwd= );SqlCommand cmd = new SqlCommand(Select * from Myuser, con);con.Open();/打開(kāi)連接, 必須打開(kāi)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(); /關(guān)閉連接1.建連接建連接2.建命令建命令3.讀取數(shù)據(jù)讀取數(shù)據(jù)4242(3) 【插入示例】選項(xiàng)卡的設(shè)計(jì)插入示例】選
33、項(xiàng)卡的設(shè)計(jì) 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();/打開(kāi)連接 try com.ExecuteNonQuery(); MessageBox.Show(插入成功!); catch (Exception ex) MessageBox.Show(插入出錯(cuò)!原因?yàn)椋簄 + ex.Message); con.Close(); /關(guān)閉連接構(gòu)造插入的構(gòu)造插入的SQL語(yǔ)句語(yǔ)句4444(4) 【刪除修改示例刪除修改示例】選項(xiàng)卡的設(shè)計(jì)選項(xiàng)卡的設(shè)計(jì)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();/打開(kāi)連接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(學(xué)號(hào)為 + txtID0 + 的學(xué)生在數(shù)據(jù)庫(kù)中不存在!); dr.Close(); /關(guān)閉dr con.Close();/關(guān)閉連接查詢部分查詢部分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();/打開(kāi)連接 try cmd.ExecuteNonQuery(); MessageBox.Show(刪除成
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024城市二手房買賣合同(32篇)
- 滬教版九年級(jí)化學(xué)上冊(cè)(上海版)全套講義
- 農(nóng)業(yè)金融服務(wù)提升產(chǎn)量潛力
- 高一化學(xué)教案:專題第三單元第二課時(shí)有機(jī)高分子的合成
- 2024高中化學(xué)第二章烴和鹵代烴2-1苯的結(jié)構(gòu)與性質(zhì)課時(shí)作業(yè)含解析新人教版選修5
- 2024高中地理第四章自然環(huán)境對(duì)人類活動(dòng)的影響4自然災(zāi)害對(duì)人類的危害課時(shí)作業(yè)含解析湘教版必修1
- 2024高中生物第五章生態(tài)系統(tǒng)及其穩(wěn)定性第5節(jié)生態(tài)系統(tǒng)的穩(wěn)定性精練含解析新人教版必修3
- 2024高中語(yǔ)文第二課千言萬(wàn)語(yǔ)總關(guān)“音”第2節(jié)耳聽(tīng)為虛-同音字和同音詞練習(xí)含解析新人教版選修語(yǔ)言文字應(yīng)用
- 2024高中語(yǔ)文精讀課文一第1課1長(zhǎng)安十年作業(yè)含解析新人教版選修中外傳記蚜
- 2024高考?xì)v史一輪復(fù)習(xí)方案專題六古代中國(guó)經(jīng)濟(jì)的基本結(jié)構(gòu)與特點(diǎn)專題綜合測(cè)驗(yàn)含解析人民版
- 小數(shù)加減法計(jì)算題100道
- 【求陰影部分面積】五年級(jí)上冊(cè)數(shù)學(xué)必考求陰影部分面積35題2023.9.27
- 結(jié)核病診斷-TSPOT-實(shí)驗(yàn)課件
- GB/T 24475-2023電梯遠(yuǎn)程報(bào)警系統(tǒng)
- 四位數(shù)乘四位數(shù)乘法題500道
- 華東師大版-七年級(jí)下冊(cè)數(shù)學(xué)-第6章-一元一次方程-教學(xué)課件
- (2023)法律基礎(chǔ)知識(shí)考試題庫(kù)及答案
- GB/T 22719.2-2008交流低壓電機(jī)散嵌繞組匝間絕緣第2部分:試驗(yàn)限值
- 小學(xué)一年級(jí)期末家長(zhǎng)會(huì)課件1
- 人教版新教材高中生物選擇性必修一全冊(cè)重點(diǎn)知識(shí)點(diǎn)歸納總結(jié)(穩(wěn)態(tài)與調(diào)節(jié))
- 質(zhì)量員培訓(xùn)講座課件
評(píng)論
0/150
提交評(píng)論