




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、大連理工大學(xué)出版社高職教育出版中心大連理工大學(xué)出版社高職教育出版中心第第7 7章章 ADO.NET數(shù)據(jù)庫訪問技術(shù)數(shù)據(jù)庫訪問技術(shù) 2 2主要內(nèi)容:主要內(nèi)容:u數(shù)據(jù)控件訪問數(shù)據(jù)庫數(shù)據(jù)控件訪問數(shù)據(jù)庫uADO.Net數(shù)據(jù)庫訪問技術(shù)數(shù)據(jù)庫訪問技術(shù)u使用使用DataReader訪問數(shù)據(jù)庫訪問數(shù)據(jù)庫u使用使用DataAdapter和和DataSet訪問數(shù)據(jù)庫訪問數(shù)據(jù)庫目的要求:目的要求: 會(huì)利用數(shù)據(jù)控件訪問數(shù)據(jù)庫;會(huì)利用代碼訪問數(shù)據(jù)庫;會(huì)利用數(shù)據(jù)控件訪問數(shù)據(jù)庫;會(huì)利用代碼訪問數(shù)據(jù)庫;能瀏覽、查詢、刪除、修改能瀏覽、查詢、刪除、修改3 37.1 數(shù)據(jù)控件訪問數(shù)據(jù)庫數(shù)據(jù)控件訪問數(shù)據(jù)庫常用常用數(shù)據(jù)訪問控件數(shù)據(jù)訪問
2、控件 :(1)BindingSource控件:綁定數(shù)據(jù)源控件,用來綁定數(shù)控件:綁定數(shù)據(jù)源控件,用來綁定數(shù)據(jù)庫。據(jù)庫。(2)DataSet控件:數(shù)據(jù)集控件??丶簲?shù)據(jù)集控件。(3) DataGridView控件:數(shù)據(jù)網(wǎng)格視圖控件,該控件主控件:數(shù)據(jù)網(wǎng)格視圖控件,該控件主要以數(shù)據(jù)網(wǎng)格形式顯示后臺(tái)數(shù)據(jù)庫的數(shù)據(jù)。要以數(shù)據(jù)網(wǎng)格形式顯示后臺(tái)數(shù)據(jù)庫的數(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梅椒ǎ簡?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ù)控件訪問數(shù)據(jù)庫數(shù)據(jù)控件訪問數(shù)據(jù)庫【實(shí)例【實(shí)例7-1】利用向?qū)гL問】利用向?qū)гL問Access數(shù)據(jù)庫數(shù)據(jù)庫1.新建項(xiàng)目新建項(xiàng)目2.添加添加【BindingSource】控件,單擊其】控件,單擊其DataSource屬屬性后的下拉按鈕,單擊性后的下拉按鈕,單擊【添加項(xiàng)目數(shù)據(jù)源】,啟用添加項(xiàng)目數(shù)據(jù)源】,啟用向?qū)驅(qū)? . 6
4、 63.3.選選“數(shù)據(jù)庫數(shù)據(jù)庫”“下一步下一步” 4.“4.“新建連接新建連接” ” “ “更改更改” 7 7 5. 5.數(shù)據(jù)源選數(shù)據(jù)源選“Microsoft Access數(shù)據(jù)庫文件數(shù)據(jù)庫文件”“確定確定” 6.“6.“瀏覽瀏覽” ” 選數(shù)據(jù)庫文件選數(shù)據(jù)庫文件“確定確定” ” “下一步下一步”8 87. 選選“是是”將數(shù)據(jù)文件復(fù)制到項(xiàng)目中將數(shù)據(jù)文件復(fù)制到項(xiàng)目中8.單擊單擊 ”下一步下一步”,將連接字符串保存到應(yīng)用程序配,將連接字符串保存到應(yīng)用程序配置文件中。置文件中。9 99. 在如圖在如圖7-12所示的所示的“選擇數(shù)據(jù)庫對(duì)象選擇數(shù)據(jù)庫對(duì)象”對(duì)話框中,對(duì)話框中,選中選中“會(huì)員表會(huì)員表”,并單擊
5、,并單擊 【完成】按鈕?!就瓿伞堪粹o。101010. 10. 窗體上添加窗體上添加”DataGridViewDataGridView”控件控件, ,在其任務(wù)面板中在其任務(wù)面板中選數(shù)據(jù)庫表選數(shù)據(jù)庫表”MyuserMyuser”。11. 11. 運(yùn)行運(yùn)行注:利用注:利用DataGridViewDataGridView控件任務(wù)面板可添、刪列,設(shè)置列屬性??丶蝿?wù)面板可添、刪列,設(shè)置列屬性。11117.1 數(shù)據(jù)控件訪問數(shù)據(jù)庫數(shù)據(jù)控件訪問數(shù)據(jù)庫【實(shí)例【實(shí)例7-2】利用向?qū)гL問】利用向?qū)гL問SQL Server數(shù)據(jù)庫數(shù)據(jù)庫1212主要設(shè)計(jì)步驟主要設(shè)計(jì)步驟: 1創(chuàng)建創(chuàng)建SQL Server數(shù)據(jù)庫。數(shù)據(jù)庫。
6、2設(shè)置數(shù)據(jù)庫的登錄驗(yàn)證模式。設(shè)置數(shù)據(jù)庫的登錄驗(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語句語句 SQL是結(jié)構(gòu)化查詢語言(是結(jié)構(gòu)化查詢語言(Structured Query Language)的縮寫,是一種完整的數(shù)據(jù)庫操作語)的縮寫,是一種完整的數(shù)據(jù)庫操作語言,目前已成為關(guān)系型數(shù)據(jù)庫的訪問標(biāo)準(zhǔn)。常見言,目前已成為關(guān)系型數(shù)據(jù)庫的訪問標(biāo)準(zhǔn)。常見的關(guān)系數(shù)據(jù)庫的關(guān)系數(shù)據(jù)庫Access、SQL Server等都支持等都支持SQL語語言。言。 SQL有有4種最基本的數(shù)據(jù)
7、操作語句:種最基本的數(shù)據(jù)操作語句:Select、Delete、Update、Insert,分別執(zhí)行,分別執(zhí)行4種基本操作:種基本操作:查詢、刪除、修改、插入。查詢、刪除、修改、插入。 14147.2.1 Select語句語句 Select 語句是語句是SQL語句中最常用的語句,用語句中最常用的語句,用于從數(shù)據(jù)庫中查詢數(shù)據(jù)。于從數(shù)據(jù)庫中查詢數(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語句語句 Delete語句用于從一個(gè)表中刪除符合條件的語句用于從一個(gè)表中刪除符合條件的記錄。記錄。 常用格式:常用格式: Delete From 表名表名 Where
9、條件條件【例【例7】Delete From 會(huì)員表會(huì)員表 where ID=10【例【例8】Delete From 會(huì)員表會(huì)員表17177.2.3 Update語句語句 Update語句用于修改數(shù)據(jù)表中一個(gè)或多個(gè)字語句用于修改數(shù)據(jù)表中一個(gè)或多個(gè)字段的值。段的值。 常用格式:常用格式:Update 表名表名 Set 字段字段1=字段字段1的值的值,字段字段2=字字段段2的值的值,Where 條件條件【例【例9】Update 會(huì)員表會(huì)員表 Set 姓名姓名=林娜林娜, 年齡年齡= 22 Where ID=218187.2.4 Insert語句語句 Insert語句用于向數(shù)據(jù)表中插入一條記錄。語句用
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ù)訪問組框架引入的數(shù)
11、據(jù)訪問組件,件,.NET .NET 框架提供了一組用于管理數(shù)據(jù)庫交互的框架提供了一組用于管理數(shù)據(jù)庫交互的對(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、訪問數(shù)據(jù)庫的方式訪問數(shù)據(jù)庫的方式: : (1)(1)利用利用DataReaderDataReader對(duì)象,這種方式只能讀取數(shù)據(jù)庫,不能對(duì)象,這種方式只能讀取數(shù)據(jù)庫,不能修改記錄。修改記錄。 (2)(2)利用利用DataAdapterDataAdapter和和DataSetDataSet對(duì)象,這種方式更靈活,可對(duì)象,這種方式更靈活,可對(duì)數(shù)據(jù)庫進(jìn)行各種操作對(duì)數(shù)據(jù)庫進(jìn)行各種操作。2222.NET.NET數(shù)據(jù)提供程序可用來連接數(shù)據(jù)庫,執(zhí)行命令,獲取數(shù)據(jù)提供程序可用來連接數(shù)據(jù)庫,執(zhí)行命令,獲取結(jié)果。結(jié)果。n訪問訪問SQL Server 7.0以上版本的數(shù)據(jù)庫,用以上版本的數(shù)據(jù)庫,用SQL Server
13、.NET數(shù)據(jù)提供程序,需要引用命名空間數(shù)據(jù)提供程序,需要引用命名空間System.Data.SqlClient;n訪問訪問Access數(shù)據(jù)庫,用數(shù)據(jù)庫,用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ì)象說明說明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ù)庫名數(shù)據(jù)庫名;uid=用戶名用戶名;Pwd=密碼密碼”; “Server=服務(wù)器名服務(wù)器名;database=數(shù)據(jù)庫名數(shù)據(jù)庫名; 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ù)庫數(shù)據(jù)庫(要引入要引入System.Data.OLEDB) 連接字符串連接字符串 String strCon=“ Provider=Microsof
16、t.OLEDB.4.0;Data Source=數(shù)據(jù)庫名數(shù)據(jù)庫名” 創(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( ) 方法:打開與數(shù)據(jù)庫表的連接方法:打開與數(shù)據(jù)庫表的連接 例:例:myco
17、nn.Open( ); Close( )方法方法: 關(guān)閉與數(shù)據(jù)庫表的連接關(guān)閉與數(shù)據(jù)庫表的連接 例:例: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) 打開數(shù)據(jù)源的連接;打開數(shù)據(jù)源的連接; (4) 執(zhí)行數(shù)據(jù)庫的訪問操作代碼;執(zhí)行數(shù)據(jù)庫的訪問操作代碼; (5) 關(guān)閉數(shù)據(jù)源連接。關(guān)閉數(shù)據(jù)源連接?!緦?shí)例【實(shí)例7-3】連接】連接SQL Server數(shù)據(jù)庫數(shù)據(jù)庫28287.4.2 Command對(duì)象對(duì)
18、象與數(shù)據(jù)庫建立連接后,與數(shù)據(jù)庫建立連接后,Command對(duì)象使用對(duì)象使用SQL語句語句對(duì)數(shù)據(jù)庫進(jìn)行操作并從數(shù)據(jù)源返回結(jié)果。對(duì)數(shù)據(jù)庫進(jìn)行操作并從數(shù)據(jù)源返回結(jié)果。(1)創(chuàng)建創(chuàng)建Command實(shí)例實(shí)例 創(chuàng)建格式創(chuàng)建格式: SqlCommand 對(duì)象名對(duì)象名 = new SqlCommand(SQL語句語句, 連接名連接名); 如: string sql=“Select * from Myuser“; /SQL語句字符串語句字符串 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語句或存儲(chǔ)過程名稱語句或存儲(chǔ)過程名稱) )nConnection:使用的活動(dòng)連接。:使用的活動(dòng)連接。nCommandType:命令類型,默認(rèn)為:命令類型,默認(rèn)為TextText,也可以是:,也可以是: StoreProcedure(3) Command對(duì)象常用方法:對(duì)象常用方法:uExecuteReader():返回:返回DataReader類型值類型值 當(dāng)用當(dāng)用Select SQL語句進(jìn)行記錄的查詢時(shí)用此方法語句進(jìn)行記錄的查詢時(shí)用此方法uExecuteNonQue
20、ry():返回受影響的行數(shù):返回受影響的行數(shù) 當(dāng)用當(dāng)用delete、insert、update等等SQL語句進(jìn)行插、刪、改語句進(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)先把連接打開應(yīng)先把連接打開【示例【示例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對(duì)象對(duì)象DataReader(數(shù)據(jù)讀取器數(shù)據(jù)讀取器)
22、主要應(yīng)用在有連接的數(shù)據(jù)應(yīng)用場主要應(yīng)用在有連接的數(shù)據(jù)應(yīng)用場合,它提供了快速的、只讀的、僅向前的數(shù)據(jù)訪問方式。合,它提供了快速的、只讀的、僅向前的數(shù)據(jù)訪問方式。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ù)庫連接后用于填充數(shù)據(jù)集和更新數(shù)據(jù)源,它和一個(gè)數(shù)據(jù)庫連接后用于填充數(shù)據(jù)集和更新數(shù)據(jù)源,它主要用于管理與數(shù)據(jù)庫的連接、執(zhí)行命令并向數(shù)據(jù)集返主要用于管理與數(shù)據(jù)庫的連接、執(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ù)庫服務(wù)器上里面的數(shù)值存儲(chǔ)到數(shù)據(jù)庫服務(wù)器上主要屬性主要屬性: InsertCommand:插入新記錄的:插入新記錄的SQL語句或存儲(chǔ)過程語句或存儲(chǔ)過程UpdateCommand:更新記錄的:更新記錄的SQL語句或存儲(chǔ)過程語句或存儲(chǔ)過程DeleteCommand :刪除記錄的:刪除記錄的SQL語句或存儲(chǔ)過程語句或存儲(chǔ)過程SelectCommand :選擇記錄的:選擇記錄的SQL語句或存儲(chǔ)過程語句或存儲(chǔ)過程創(chuàng)建格式:創(chuàng)建格式:SqlDataAdapt
25、er 對(duì)象名對(duì)象名= new SqlDataAdapter(SQL語句語句, 連接名連接名);3434DataAdapter 對(duì)象對(duì)象 DataTableDataTableDataSetFillUpdateData sourceDataAdapterDataAdapterFillUpdate35357.4.5 數(shù)據(jù)集數(shù)據(jù)集DataSet 當(dāng)向數(shù)據(jù)庫申請(qǐng)數(shù)據(jù)時(shí),系統(tǒng)建立數(shù)據(jù)集和數(shù)據(jù)當(dāng)向數(shù)據(jù)庫申請(qǐng)數(shù)據(jù)時(shí),系統(tǒng)建立數(shù)據(jù)集和數(shù)據(jù)庫之間的連接。庫之間的連接。 ADO.NET向編程人員所提供的數(shù)據(jù)集對(duì)象是向編程人員所提供的數(shù)據(jù)集對(duì)象是DataSet。 DataSet對(duì)象是一個(gè)數(shù)據(jù)集,主要用來存放從數(shù)據(jù)庫對(duì)
26、象是一個(gè)數(shù)據(jù)集,主要用來存放從數(shù)據(jù)庫中取回的數(shù)據(jù),可將中取回的數(shù)據(jù),可將DataSet看作一個(gè)小型內(nèi)存數(shù)據(jù)庫,看作一個(gè)小型內(nèi)存數(shù)據(jù)庫,它包含表、列、行、約束和關(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ù)庫中的一個(gè)表,而對(duì)象代表了數(shù)據(jù)庫中的一個(gè)表,而DataTable對(duì)象包含數(shù)據(jù)行的集合對(duì)象包含數(shù)據(jù)行的集合Rows、數(shù)據(jù)列的集合、數(shù)據(jù)列的集合Columns,因此可直接使用這些對(duì)象訪問數(shù)據(jù)集中的數(shù),因此可直接使用這些對(duì)象訪問數(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ù)的過程顯示數(shù)據(jù)的過程n建立數(shù)據(jù)庫連接建立數(shù)據(jù)庫連接(Connection)(Connection)對(duì)象。對(duì)象。n使用使用SQLSQL語句和語句和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ù)庫簡單操作】數(shù)據(jù)庫簡單操作 示例數(shù)據(jù)庫示例數(shù)據(jù)庫(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語句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();/打開連接, 必須打開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();/打開連接 try com.ExecuteNonQuery(); MessageBox.Show(插入成功!); catch (Exception ex) MessageBox.Show(插入出錯(cuò)!原因?yàn)椋簄 + ex.Message); con.Close(); /關(guān)閉連接構(gòu)造插入的構(gòu)造插入的SQL語句語句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();/打開連接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ù)庫中不存在!); 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();/打開連接 try cmd.ExecuteNonQuery(); MessageBox.Show(刪除成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 敏捷開發(fā)方法論2025年考試試題及答案
- 2025年軟考軟件設(shè)計(jì)師有效試題及答案匯編
- 法學(xué)概論從入門到精通的試題及答案
- 管理者的時(shí)間與精力分配計(jì)劃
- 會(huì)計(jì)軟件應(yīng)用能力提升計(jì)劃
- 積極心理與職業(yè)幸福感提升計(jì)劃
- 供應(yīng)鏈優(yōu)化計(jì)劃
- 城市交通需求管理重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 美術(shù)班級(jí)文化建設(shè)活動(dòng)計(jì)劃
- 2024年陜西師范大學(xué)輔導(dǎo)員考試真題
- 人力資源管理視角下崗位勝任力素質(zhì)模型的構(gòu)建與優(yōu)化
- 經(jīng)濟(jì)學(xué)中的時(shí)間價(jià)值試題及答案解讀
- 2024年湖北省竹山縣事業(yè)單位公開招聘名筆試題帶答案
- 員工持股協(xié)議書合同
- 酒館入股合同協(xié)議書
- 2025年人保財(cái)險(xiǎn)陜西省分公司招聘(57人)筆試參考題庫附帶答案詳解
- 民法典宣傳進(jìn)企業(yè)課件
- 基于核心素養(yǎng)下的高中數(shù)學(xué)情境教學(xué)研究
- 供熱企業(yè)安全管理制度
- 《阿里巴巴招聘案例》課件
- 應(yīng)聘索道面試題及答案
評(píng)論
0/150
提交評(píng)論