版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
主要內(nèi)容ADO.NET概述;.NET數(shù)據(jù)提供者以O(shè)leDb模式、SqlClient模式建立數(shù)據(jù)庫連接的方法;通過SqlCommand、DataReader、DataAdapter、DataSet進(jìn)行讀、寫、檢索SQLServer數(shù)據(jù)庫;利用數(shù)據(jù)控件通過綁定技術(shù)顯示數(shù)據(jù)庫中的數(shù)據(jù)。主要內(nèi)容ADO.NET概述;11、ADO.NET概述
ADO.NET是美國微軟公司最新推出.NET平臺中的一種數(shù)據(jù)訪問技術(shù),是專門為.NETFramework而設(shè)計(jì)的,是ADO的升級版本;ADO.NET集成了到.NETFramework中,可用于任何.NET語言,尤其是C#;ADO.NET包括所有的System.Data命名空間及其嵌套的命名空間。ADO.NET將成為構(gòu)建.NET數(shù)據(jù)庫應(yīng)用程序的基礎(chǔ)。
ADO.NET類庫中提供了用于數(shù)據(jù)連接、處理數(shù)據(jù)操作的類。System.Data名稱空間可以通過數(shù)據(jù)提供者(provider)與數(shù)據(jù)庫通信,ADO.NET對象允許通過組件連接到數(shù)據(jù)庫,在數(shù)據(jù)庫中進(jìn)行檢索、編輯、刪除和插入數(shù)據(jù),并在程序中處理數(shù)據(jù)。ADO.NET支持已連接環(huán)境和非連接環(huán)境的數(shù)據(jù)訪問。1、ADO.NET概述ADO.NET是美國微軟公司21.1ADO.NET架構(gòu)
ADO.NET架構(gòu)的兩個主要組件:DataProvider(數(shù)據(jù)提供者)DataSet(數(shù)據(jù)集)1.1ADO.NET架構(gòu)ADO.NET架構(gòu)的兩個31.2ADO.NET訪問數(shù)據(jù)庫的模式1.ADO.NET訪問數(shù)據(jù)庫的模式主要前3種:OleDb模式:主要用于訪問OLEDB支持的數(shù)據(jù)庫,如Access或SQLServer6.x或更早版本)需在命名空間區(qū)域添加System.Data.OleDb命名空間;Odbc模式:主要用于ODBC所支持的數(shù)據(jù)庫,一般在Windows平臺下存在的數(shù)據(jù)庫都可以通過建立系統(tǒng)DSN來實(shí)現(xiàn)對數(shù)據(jù)庫的調(diào)用,需在命名空間區(qū)域添加System.Data.Odbc命名空間;SqlClient模式:對MSSQLServer的訪問更高效,需在命名空間區(qū)域添加System.Data.SqlClient命名空間;Oracle模式:對Oracle數(shù)據(jù)庫專用的訪問。1.2ADO.NET訪問數(shù)據(jù)庫的模式1.ADO.NET41.2.NETFramework數(shù)據(jù)提供程序
.NETDataProvider核心類.NETFramework數(shù)據(jù)提供程序包括四個核心類,用于實(shí)現(xiàn)對數(shù)據(jù)庫的數(shù)據(jù)處理。(1)Connection對象數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)庫進(jìn)行交互要在建立數(shù)據(jù)庫連接的基礎(chǔ)上進(jìn)行。Connection對象成為連接對象,提供了對數(shù)據(jù)存儲中正在運(yùn)行的事務(wù)(Transaction)的訪問技術(shù)。(2)Command對象Command對象用于執(zhí)行數(shù)據(jù)庫的命令操作,命令操作包括檢索(Select)、插入(Insert)、刪除(Delete)以及更新(Update)操作。(3)DataAdapter對象DataAdapter(數(shù)據(jù)適配器)對象在DataSet對象和數(shù)據(jù)源之間架起了一座“橋梁”。DataAdapter可以用數(shù)據(jù)源填充DataSet并解析更新。(4)DataReader對象數(shù)據(jù)流提供了高性能的、前向的數(shù)據(jù)存取機(jī)制。通過DataReader可以輕松而高效地訪問數(shù)據(jù)流。DataReader對象用于從數(shù)據(jù)庫中讀取由SELECT命令返回的只讀的數(shù)據(jù)流,在這個過程中一直保持與數(shù)據(jù)庫的連接。1.2.NETFramework數(shù)據(jù)提供程序.NET51.3DataSet數(shù)據(jù)集
ADO.NET的一個比較突出的特點(diǎn)是支持離線訪問,即在非連接環(huán)境下對數(shù)據(jù)進(jìn)行處理,DataSet是支持離線訪問的關(guān)鍵對象,它將數(shù)據(jù)存儲在緩存中。DataSet對象不關(guān)心數(shù)據(jù)源的類型,它將信息以表的形式存放。DataSet對象是非連接存儲和處理關(guān)系的基礎(chǔ)。
1.3DataSet數(shù)據(jù)集ADO.NE61.4ADO.NET的設(shè)計(jì)目標(biāo)
簡單地訪問關(guān)系數(shù)據(jù)
可擴(kuò)展性
ADO.NET具有良好的可擴(kuò)展性——它為.NET數(shù)據(jù)提供者插件提供了框架,這些提供者可用于從任何數(shù)據(jù)源讀寫數(shù)據(jù)支持多層應(yīng)用程序
ADO.NET使用開放的XML標(biāo)準(zhǔn)格式在層之間通信,允許數(shù)據(jù)通過Internet防火墻來傳遞,并允許以非Microsoft技術(shù)實(shí)現(xiàn)一層或多層統(tǒng)一XML和關(guān)系數(shù)據(jù)訪問
XML文檔具有分層的數(shù)據(jù)結(jié)構(gòu)。.NET技術(shù)是以XML為基礎(chǔ)構(gòu)建的,ADO.NET可以擴(kuò)展.NET的用法,溝通行、列和XML文檔中的關(guān)系數(shù)據(jù)1.4ADO.NET的設(shè)計(jì)目標(biāo)簡單地訪問關(guān)系數(shù)據(jù)72、ADO.NET對象
ADO.NET類之間的關(guān)系2、ADO.NET對象ADO.NET類之間的關(guān)8提供者對象
提供者對象就是指在每一個.NET數(shù)據(jù)提供者中定義的對象,其名稱前帶有特定提供者的名稱連接對象命令對象CommandBuilder對象DataReader對象DataAdapter對象提供者對象提供者對象就是指在每一個.NET數(shù)據(jù)提供92.1Connection對象
在C#.NET中,通過Connection對象實(shí)現(xiàn)數(shù)據(jù)連接,并且在使用過程中,根據(jù)不同的數(shù)據(jù)庫的類型使用不同的Connection控件。在ADO.NETConnection類中有兩個子類:一個是SqlConnection;另一個是OleDbConnection。
2.1Connection對象在C#.NET中,通102.1Connection對象
1.Connection對象常用屬性有:ConnectionString屬性:用來指定要連接的數(shù)據(jù)源。在ConnectionString屬性中,需要使用很多參數(shù)。如:DataSource用來指明數(shù)據(jù)源;InitialCatalog用來指明數(shù)據(jù)庫;IntegratedSecurity用來指明集成安全等。ConnectionTimeout屬性:獲取在嘗試建立連接時終止嘗試并生成錯誤之前所等待的時間。返回結(jié)果:等待連接打開的時間(以秒為單位)。默認(rèn)值為15秒。Database屬性:獲取當(dāng)前數(shù)據(jù)庫或連接打開后要使用的數(shù)據(jù)庫的名稱。返回結(jié)果:當(dāng)前數(shù)據(jù)庫的名稱或連接打開后要使用的數(shù)據(jù)庫的名稱。默認(rèn)值為空字符串。DataSource屬性:獲取要連接的數(shù)據(jù)源實(shí)例的名稱。2.1Connection對象1.Connecti112.1Connection對象
2.Connection對象常用方法Connection對象最常用的方法有Open和Close方法。Open()方法:該方法用于打開由ConnectionString屬性指定的數(shù)據(jù)源連接。Close方法():該方法用于斷開由ConnectionString屬性指定的數(shù)據(jù)源連接。
2.1Connection對象2.Connecti122.1Connection對象
3.Connection對象的創(chuàng)建
常用的連接數(shù)據(jù)庫的格式:1)采用SqlServer身份驗(yàn)證
stringconstring=“server=計(jì)算機(jī)名;uid=用戶名;pwd=密碼;database=數(shù)據(jù)庫名稱";SqlConnectionconnection=newSqlConnection(constring);2)集成的Windows身份驗(yàn)證語法Stringconstring="server=計(jì)算機(jī)名;database=數(shù)據(jù)庫名稱;integratedsecurity=SSPI";SqlConnectionconnection=newSqlConnection(constring);2.1Connection對象3.Connection13OleDbConnection對象的創(chuàng)建方法和SqlConnection對象的創(chuàng)建方法類似OleDbConnection對象的創(chuàng)建方法和SqlConn142.2Command對象
通過編程的方法創(chuàng)建一個Command對象:SqlCommandcommand=newSqlCommand();或OleDbCommandcommand=newOleDbCommand();2.2Command對象通過編程的方法創(chuàng)建一個Comma152.2用控件實(shí)現(xiàn)數(shù)據(jù)庫的連接1.添加控件若連接對象不在工具箱,則添加方法:工具選擇工具箱項(xiàng).NETFramework組件選擇SqlConnection控件和SqlCommand控件添加;2.設(shè)置SqlConnection控件的ConnectionString屬性;設(shè)置SqlCommand控件的Connection屬性為以上的SqlConnection控件;3.OleDbConnection控件和OleDbCommand控件的用法同SqlConnection控件和SqlCommand控件。2.2用控件實(shí)現(xiàn)數(shù)據(jù)庫的連接1.添加控件162.3DataAdapter對象
DataAdapter對象是ADO.NET新增加。在ADO.NETDataAdapter類中有兩個子類:一個是SqlDataAdapter類;另一個是OleDbDataAdapter類。
DataAdapter對象包含有SelectCommand、InsertCommand、UpdateCommand和DelectCommand四個屬性,用來定義處理數(shù)據(jù)存儲中數(shù)據(jù)的命令,并且每個命令都是對Command對象的一個引用,可以共享同一個數(shù)據(jù)源。2.3DataAdapter對象DataAdapt172.3DataAdapter對象
通過編程的方法創(chuàng)建一個DataAdapter對象:SqlDataAdapterdataAdapter=newSqlDataAdapter();或OleDbDataAdapterdataAdapter=newOleDbDataAdapter();。2.3DataAdapter對象通過編程的方法創(chuàng)建一個D182.4DataReader對象
DataReader對象用于對數(shù)據(jù)庫的操作。在ADO.NETDataReader類中有兩個子類:一個是SqlDataReader類;另一個是OleDbDataReader類。通過編程的方法創(chuàng)建一個DataReader對象:SqlDataReaderreader=command.ExecuteReader();或OleDbDataReaderreader=command.ExecuteReader();2.4DataReader對象DataReader192.4DataReader對象例在窗體上放置一個ListBox和一個Button;先添加sqlConnection控件和sqlCommand控件,并設(shè)置好屬性。Button的單擊事件代碼為:
2.4DataReader對象例202.4DataReader對象
sqlConnection1.Open();SqlDataReaderreader=sqlCommand1.ExecuteReader();listBox1.ColumnWidth=256;while(reader.Read()){listBox1.Items.Add(reader["sno"].ToString());//或者listBox1.Items.Add(reader.GetString(0));listBox1.Items.Add(reader["sname"].ToString());listBox1.Items.Add(reader["sbirthday"].ToString());listBox1.Items.Add(reader["sdept"].ToString());listBox1.Items.Add(reader["speciality"].ToString());
}sqlConnection1.Close();2.4DataReader對象sql212.4DataReader對象如不用控件,用代碼連接:
stringconstring="server=(local);database=student;uid=sa;pwd=sa";SqlConnectionconnection1=newSqlConnection(constring);connection1.Open();stringcommandStr="Select*Fromstuinf";SqlCommandsqlcommd=newSqlCommand(commandStr);sqlcommd.Connection=connection1;SqlDataReaderreader=sqlcommd.ExecuteReader();//后面的同上2.4DataReader對象如不用控件,用代碼連接:222.4DataReader對象listBox1.ColumnWidth=256;while(reader.Read()){listBox1.Items.Add(reader["sno"].ToString());
//或者listBox1.Items.Add(reader.GetString(0));listBox1.Items.Add(reader["sname"].ToString());listBox1.Items.Add(reader["sbirthday"].ToString());listBox1.Items.Add(reader["sdept"].ToString());listBox1.Items.Add(reader["speciality"].ToString());
}sqlConnection1.Close();2.4DataReader對象listBox1.Colu232.4數(shù)據(jù)集對象
數(shù)據(jù)集對象位于System.Data命名空間中,用于定義ADO.NET的斷開的、客戶端的對象,包括DataSet、DataTable、DataRow、DataColumn和DataRelation等。DataSet是數(shù)據(jù)集對象中的首要對象,此對象表示一組相關(guān)表;DataTable對象代表DataSet中的一個表;DataTable對象的Rows和Columns分別是DataRow和DataColumn對象,可用于訪問DataTable表中的行和列;DataRelation對象代表通過共享列而發(fā)生關(guān)系的兩個表之間的關(guān)系;2.4數(shù)據(jù)集對象數(shù)據(jù)集對象位于System.Da242.4數(shù)據(jù)集對象
DataSet對象的創(chuàng)建可以通過工具欄中的控件實(shí)現(xiàn);通過菜單“數(shù)據(jù)”|“生成數(shù)據(jù)集”來實(shí)現(xiàn);或者選擇DataAdapter對象,單擊右上角的黑三角(智能標(biāo)記),在下拉表中選擇“生成數(shù)據(jù)集…”,這時,會彈出“生成數(shù)據(jù)集”對話框。如圖14-15所示。
2.4數(shù)據(jù)集對象DataSet對象的創(chuàng)建可以通過252.4數(shù)據(jù)集對象
填充DataSet對象:
DataSet對象是一個必須填充的容器,填充方法有多種:調(diào)用DataAdapter的Fill方法、手工填充、復(fù)制或合并其它DataSet的數(shù)據(jù)。我們這里介紹使用DataAdapter的Fill方法填充DataSet對象。2.4數(shù)據(jù)集對象填充DataSet對象:262.4數(shù)據(jù)集對象在窗體上添加一個標(biāo)簽,一個DataGridView控件,使用DataAdapter的Fill方法填充DataSet對象2.4數(shù)據(jù)集對象在窗體上添加一個標(biāo)簽,一個DataGrid272.4數(shù)據(jù)集對象privatevoidForm1_Load(objectsender,EventArgse){
stringconstring="server=(local);database=student;uid=sa;pwd=sa";SqlConnectionconnection=newSqlConnection(constring);connection.Open();stringsqlstr="select*fromstuinf";SqlDataAdaptersqladp=newSqlDataAdapter(sqlstr,connection);DataSetdts=newDataSet();sqladp.Fill(dts,"stuinf");this.dataGridView1.DataSource=dts.Tables["stuinf"];}2.4數(shù)據(jù)集對象283、使用數(shù)據(jù)庫
在C#代碼中使用ADO.NET的第一步就是引用System.Data命名空間,該命名空間中含有所有的ADO.NET類;接著,需要根據(jù)數(shù)據(jù)源的類型不同,而引用相應(yīng)的數(shù)據(jù)提供者。SQLServer.NET數(shù)據(jù)提供者:SQLServer數(shù)據(jù)庫,使用using指令引用System.Data.SqlClient。Oracle.NET數(shù)據(jù)提供者:Oracle數(shù)據(jù)庫,內(nèi)置Oracle.NET驅(qū)動程序是最佳選擇,System.Data.OracleClient;另外,Oracle本身也提供了一個.NET數(shù)據(jù)提供者,Oracle.DataAccess.ClientOLEDB.NET提供者:MicrosoftAccess,System.Data.OleDbODBC.NET數(shù)據(jù)提供者:如果數(shù)據(jù)源沒有內(nèi)置的或OLEDB提供者,則可以使用ODBC.NET數(shù)據(jù)提供者System.Data.Odbc其他內(nèi)置的.NET數(shù)據(jù)提供者:如果數(shù)據(jù)庫有專用的內(nèi)置.NET數(shù)據(jù)提供者,就可以使用它3、使用數(shù)據(jù)庫在C#代碼中使用ADO.NET的第一步就是293.1創(chuàng)建數(shù)據(jù)庫
3.1創(chuàng)建數(shù)據(jù)庫303.2DataGridView控件
DataGridView控件使程序員可在自定義的網(wǎng)格中顯示數(shù)據(jù)。
DataGridView控件主要屬性:ReadOnly:該值指示用戶是否可以編輯System.Windows.Forms.DataGridView控件的單元格。DataSource:獲取或設(shè)置System.Windows.Forms.DataGridView所顯示數(shù)據(jù)的數(shù)據(jù)源。DataMember:獲取或設(shè)置數(shù)據(jù)源中System.Windows.Forms.DataGridView顯示其數(shù)據(jù)的列表或表的名稱。CurrentRow:獲取包含當(dāng)前單元格的行。3.2DataGridView控件DataGr313.2DataGridView控件
BindingSource類是和DataGridView控件經(jīng)常配合使用的一個類。BindingSource類的主要屬性如下:publicobjectDataSource{get;set;}:獲取或設(shè)置連接器綁定到的數(shù)據(jù)源。返回結(jié)果:作為數(shù)據(jù)源的System.Object。默認(rèn)為null。publicstringDataMember{get;set;}:獲取或設(shè)置連接器當(dāng)前綁定到的數(shù)據(jù)源中的特定列表。返回結(jié)果:System.Windows.Forms.BindingSource.DataSource中的列表(或行)的名稱。默認(rèn)值為空字符串。3.2DataGridView控件Bindin323.3使用數(shù)據(jù)窗體向?qū)瓿蓴?shù)據(jù)庫訪問
使用數(shù)據(jù)窗體向?qū)?chuàng)建簡單數(shù)據(jù)庫應(yīng)用程序是快捷簡便的途徑,用戶僅需要按向?qū)崾净卮鹑舾蓡栴},即可生成一個具有基本數(shù)據(jù)庫管理功能的應(yīng)用程序。以創(chuàng)建一個處理數(shù)據(jù)庫student的數(shù)據(jù)庫應(yīng)用程序了解數(shù)據(jù)庫窗體向?qū)У膭?chuàng)建。創(chuàng)建數(shù)據(jù)源(在數(shù)據(jù)菜單中添加數(shù)據(jù)源)預(yù)覽數(shù)據(jù)(數(shù)據(jù)集的具體數(shù)據(jù)源中預(yù)覽)在應(yīng)用程序中顯示數(shù)據(jù)3.3使用數(shù)據(jù)窗體向?qū)瓿蓴?shù)據(jù)庫訪問使用數(shù)據(jù)窗體向?qū)?chuàng)建簡33上機(jī)試題:
1、創(chuàng)建一個數(shù)據(jù)庫備用;2、用控件(SqlConnection控件Sqlcommand控件實(shí)現(xiàn)數(shù)據(jù)庫的連接);3.用代碼實(shí)現(xiàn)數(shù)據(jù)庫的連接;4.創(chuàng)建數(shù)據(jù)集,并掌握使用DataAdapter的Fill方法填充DataSet對象;5.使用數(shù)據(jù)窗體向?qū)瓿蓴?shù)據(jù)庫訪問。上機(jī)試題:1、創(chuàng)建一個數(shù)據(jù)庫備用;34主要內(nèi)容ADO.NET概述;.NET數(shù)據(jù)提供者以O(shè)leDb模式、SqlClient模式建立數(shù)據(jù)庫連接的方法;通過SqlCommand、DataReader、DataAdapter、DataSet進(jìn)行讀、寫、檢索SQLServer數(shù)據(jù)庫;利用數(shù)據(jù)控件通過綁定技術(shù)顯示數(shù)據(jù)庫中的數(shù)據(jù)。主要內(nèi)容ADO.NET概述;351、ADO.NET概述
ADO.NET是美國微軟公司最新推出.NET平臺中的一種數(shù)據(jù)訪問技術(shù),是專門為.NETFramework而設(shè)計(jì)的,是ADO的升級版本;ADO.NET集成了到.NETFramework中,可用于任何.NET語言,尤其是C#;ADO.NET包括所有的System.Data命名空間及其嵌套的命名空間。ADO.NET將成為構(gòu)建.NET數(shù)據(jù)庫應(yīng)用程序的基礎(chǔ)。
ADO.NET類庫中提供了用于數(shù)據(jù)連接、處理數(shù)據(jù)操作的類。System.Data名稱空間可以通過數(shù)據(jù)提供者(provider)與數(shù)據(jù)庫通信,ADO.NET對象允許通過組件連接到數(shù)據(jù)庫,在數(shù)據(jù)庫中進(jìn)行檢索、編輯、刪除和插入數(shù)據(jù),并在程序中處理數(shù)據(jù)。ADO.NET支持已連接環(huán)境和非連接環(huán)境的數(shù)據(jù)訪問。1、ADO.NET概述ADO.NET是美國微軟公司361.1ADO.NET架構(gòu)
ADO.NET架構(gòu)的兩個主要組件:DataProvider(數(shù)據(jù)提供者)DataSet(數(shù)據(jù)集)1.1ADO.NET架構(gòu)ADO.NET架構(gòu)的兩個371.2ADO.NET訪問數(shù)據(jù)庫的模式1.ADO.NET訪問數(shù)據(jù)庫的模式主要前3種:OleDb模式:主要用于訪問OLEDB支持的數(shù)據(jù)庫,如Access或SQLServer6.x或更早版本)需在命名空間區(qū)域添加System.Data.OleDb命名空間;Odbc模式:主要用于ODBC所支持的數(shù)據(jù)庫,一般在Windows平臺下存在的數(shù)據(jù)庫都可以通過建立系統(tǒng)DSN來實(shí)現(xiàn)對數(shù)據(jù)庫的調(diào)用,需在命名空間區(qū)域添加System.Data.Odbc命名空間;SqlClient模式:對MSSQLServer的訪問更高效,需在命名空間區(qū)域添加System.Data.SqlClient命名空間;Oracle模式:對Oracle數(shù)據(jù)庫專用的訪問。1.2ADO.NET訪問數(shù)據(jù)庫的模式1.ADO.NET381.2.NETFramework數(shù)據(jù)提供程序
.NETDataProvider核心類.NETFramework數(shù)據(jù)提供程序包括四個核心類,用于實(shí)現(xiàn)對數(shù)據(jù)庫的數(shù)據(jù)處理。(1)Connection對象數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)庫進(jìn)行交互要在建立數(shù)據(jù)庫連接的基礎(chǔ)上進(jìn)行。Connection對象成為連接對象,提供了對數(shù)據(jù)存儲中正在運(yùn)行的事務(wù)(Transaction)的訪問技術(shù)。(2)Command對象Command對象用于執(zhí)行數(shù)據(jù)庫的命令操作,命令操作包括檢索(Select)、插入(Insert)、刪除(Delete)以及更新(Update)操作。(3)DataAdapter對象DataAdapter(數(shù)據(jù)適配器)對象在DataSet對象和數(shù)據(jù)源之間架起了一座“橋梁”。DataAdapter可以用數(shù)據(jù)源填充DataSet并解析更新。(4)DataReader對象數(shù)據(jù)流提供了高性能的、前向的數(shù)據(jù)存取機(jī)制。通過DataReader可以輕松而高效地訪問數(shù)據(jù)流。DataReader對象用于從數(shù)據(jù)庫中讀取由SELECT命令返回的只讀的數(shù)據(jù)流,在這個過程中一直保持與數(shù)據(jù)庫的連接。1.2.NETFramework數(shù)據(jù)提供程序.NET391.3DataSet數(shù)據(jù)集
ADO.NET的一個比較突出的特點(diǎn)是支持離線訪問,即在非連接環(huán)境下對數(shù)據(jù)進(jìn)行處理,DataSet是支持離線訪問的關(guān)鍵對象,它將數(shù)據(jù)存儲在緩存中。DataSet對象不關(guān)心數(shù)據(jù)源的類型,它將信息以表的形式存放。DataSet對象是非連接存儲和處理關(guān)系的基礎(chǔ)。
1.3DataSet數(shù)據(jù)集ADO.NE401.4ADO.NET的設(shè)計(jì)目標(biāo)
簡單地訪問關(guān)系數(shù)據(jù)
可擴(kuò)展性
ADO.NET具有良好的可擴(kuò)展性——它為.NET數(shù)據(jù)提供者插件提供了框架,這些提供者可用于從任何數(shù)據(jù)源讀寫數(shù)據(jù)支持多層應(yīng)用程序
ADO.NET使用開放的XML標(biāo)準(zhǔn)格式在層之間通信,允許數(shù)據(jù)通過Internet防火墻來傳遞,并允許以非Microsoft技術(shù)實(shí)現(xiàn)一層或多層統(tǒng)一XML和關(guān)系數(shù)據(jù)訪問
XML文檔具有分層的數(shù)據(jù)結(jié)構(gòu)。.NET技術(shù)是以XML為基礎(chǔ)構(gòu)建的,ADO.NET可以擴(kuò)展.NET的用法,溝通行、列和XML文檔中的關(guān)系數(shù)據(jù)1.4ADO.NET的設(shè)計(jì)目標(biāo)簡單地訪問關(guān)系數(shù)據(jù)412、ADO.NET對象
ADO.NET類之間的關(guān)系2、ADO.NET對象ADO.NET類之間的關(guān)42提供者對象
提供者對象就是指在每一個.NET數(shù)據(jù)提供者中定義的對象,其名稱前帶有特定提供者的名稱連接對象命令對象CommandBuilder對象DataReader對象DataAdapter對象提供者對象提供者對象就是指在每一個.NET數(shù)據(jù)提供432.1Connection對象
在C#.NET中,通過Connection對象實(shí)現(xiàn)數(shù)據(jù)連接,并且在使用過程中,根據(jù)不同的數(shù)據(jù)庫的類型使用不同的Connection控件。在ADO.NETConnection類中有兩個子類:一個是SqlConnection;另一個是OleDbConnection。
2.1Connection對象在C#.NET中,通442.1Connection對象
1.Connection對象常用屬性有:ConnectionString屬性:用來指定要連接的數(shù)據(jù)源。在ConnectionString屬性中,需要使用很多參數(shù)。如:DataSource用來指明數(shù)據(jù)源;InitialCatalog用來指明數(shù)據(jù)庫;IntegratedSecurity用來指明集成安全等。ConnectionTimeout屬性:獲取在嘗試建立連接時終止嘗試并生成錯誤之前所等待的時間。返回結(jié)果:等待連接打開的時間(以秒為單位)。默認(rèn)值為15秒。Database屬性:獲取當(dāng)前數(shù)據(jù)庫或連接打開后要使用的數(shù)據(jù)庫的名稱。返回結(jié)果:當(dāng)前數(shù)據(jù)庫的名稱或連接打開后要使用的數(shù)據(jù)庫的名稱。默認(rèn)值為空字符串。DataSource屬性:獲取要連接的數(shù)據(jù)源實(shí)例的名稱。2.1Connection對象1.Connecti452.1Connection對象
2.Connection對象常用方法Connection對象最常用的方法有Open和Close方法。Open()方法:該方法用于打開由ConnectionString屬性指定的數(shù)據(jù)源連接。Close方法():該方法用于斷開由ConnectionString屬性指定的數(shù)據(jù)源連接。
2.1Connection對象2.Connecti462.1Connection對象
3.Connection對象的創(chuàng)建
常用的連接數(shù)據(jù)庫的格式:1)采用SqlServer身份驗(yàn)證
stringconstring=“server=計(jì)算機(jī)名;uid=用戶名;pwd=密碼;database=數(shù)據(jù)庫名稱";SqlConnectionconnection=newSqlConnection(constring);2)集成的Windows身份驗(yàn)證語法Stringconstring="server=計(jì)算機(jī)名;database=數(shù)據(jù)庫名稱;integratedsecurity=SSPI";SqlConnectionconnection=newSqlConnection(constring);2.1Connection對象3.Connection47OleDbConnection對象的創(chuàng)建方法和SqlConnection對象的創(chuàng)建方法類似OleDbConnection對象的創(chuàng)建方法和SqlConn482.2Command對象
通過編程的方法創(chuàng)建一個Command對象:SqlCommandcommand=newSqlCommand();或OleDbCommandcommand=newOleDbCommand();2.2Command對象通過編程的方法創(chuàng)建一個Comma492.2用控件實(shí)現(xiàn)數(shù)據(jù)庫的連接1.添加控件若連接對象不在工具箱,則添加方法:工具選擇工具箱項(xiàng).NETFramework組件選擇SqlConnection控件和SqlCommand控件添加;2.設(shè)置SqlConnection控件的ConnectionString屬性;設(shè)置SqlCommand控件的Connection屬性為以上的SqlConnection控件;3.OleDbConnection控件和OleDbCommand控件的用法同SqlConnection控件和SqlCommand控件。2.2用控件實(shí)現(xiàn)數(shù)據(jù)庫的連接1.添加控件502.3DataAdapter對象
DataAdapter對象是ADO.NET新增加。在ADO.NETDataAdapter類中有兩個子類:一個是SqlDataAdapter類;另一個是OleDbDataAdapter類。
DataAdapter對象包含有SelectCommand、InsertCommand、UpdateCommand和DelectCommand四個屬性,用來定義處理數(shù)據(jù)存儲中數(shù)據(jù)的命令,并且每個命令都是對Command對象的一個引用,可以共享同一個數(shù)據(jù)源。2.3DataAdapter對象DataAdapt512.3DataAdapter對象
通過編程的方法創(chuàng)建一個DataAdapter對象:SqlDataAdapterdataAdapter=newSqlDataAdapter();或OleDbDataAdapterdataAdapter=newOleDbDataAdapter();。2.3DataAdapter對象通過編程的方法創(chuàng)建一個D522.4DataReader對象
DataReader對象用于對數(shù)據(jù)庫的操作。在ADO.NETDataReader類中有兩個子類:一個是SqlDataReader類;另一個是OleDbDataReader類。通過編程的方法創(chuàng)建一個DataReader對象:SqlDataReaderreader=command.ExecuteReader();或OleDbDataReaderreader=command.ExecuteReader();2.4DataReader對象DataReader532.4DataReader對象例在窗體上放置一個ListBox和一個Button;先添加sqlConnection控件和sqlCommand控件,并設(shè)置好屬性。Button的單擊事件代碼為:
2.4DataReader對象例542.4DataReader對象
sqlConnection1.Open();SqlDataReaderreader=sqlCommand1.ExecuteReader();listBox1.ColumnWidth=256;while(reader.Read()){listBox1.Items.Add(reader["sno"].ToString());//或者listBox1.Items.Add(reader.GetString(0));listBox1.Items.Add(reader["sname"].ToString());listBox1.Items.Add(reader["sbirthday"].ToString());listBox1.Items.Add(reader["sdept"].ToString());listBox1.Items.Add(reader["speciality"].ToString());
}sqlConnection1.Close();2.4DataReader對象sql552.4DataReader對象如不用控件,用代碼連接:
stringconstring="server=(local);database=student;uid=sa;pwd=sa";SqlConnectionconnection1=newSqlConnection(constring);connection1.Open();stringcommandStr="Select*Fromstuinf";SqlCommandsqlcommd=newSqlCommand(commandStr);sqlcommd.Connection=connection1;SqlDataReaderreader=sqlcommd.ExecuteReader();//后面的同上2.4DataReader對象如不用控件,用代碼連接:562.4DataReader對象listBox1.ColumnWidth=256;while(reader.Read()){listBox1.Items.Add(reader["sno"].ToString());
//或者listBox1.Items.Add(reader.GetString(0));listBox1.Items.Add(reader["sname"].ToString());listBox1.Items.Add(reader["sbirthday"].ToString());listBox1.Items.Add(reader["sdept"].ToString());listBox1.Items.Add(reader["speciality"].ToString());
}sqlConnection1.Close();2.4DataReader對象listBox1.Colu572.4數(shù)據(jù)集對象
數(shù)據(jù)集對象位于System.Data命名空間中,用于定義ADO.NET的斷開的、客戶端的對象,包括DataSet、DataTable、DataRow、DataColumn和DataRelation等。DataSet是數(shù)據(jù)集對象中的首要對象,此對象表示一組相關(guān)表;DataTable對象代表DataSet中的一個表;DataTable對象的Rows和Columns分別是DataRow和DataColumn對象,可用于訪問DataTable表中的行和列;DataRelation對象代表通過共享列而發(fā)生關(guān)系的兩個表之間的關(guān)系;2.4數(shù)據(jù)集對象數(shù)據(jù)集對象位于System.Da582.4數(shù)據(jù)集對象
DataSet對象的創(chuàng)建可以通過工具欄中的控件實(shí)現(xiàn);通過菜單“數(shù)據(jù)”|“生成數(shù)據(jù)集”來實(shí)現(xiàn);或者選擇DataAdapter對象,單擊右上角的黑三角(智能標(biāo)記),在下拉表中選擇“生成數(shù)據(jù)集…”,這時,會彈出“生成數(shù)據(jù)集”對話框。如圖14-15所示。
2.4數(shù)據(jù)集對象DataSet對象的創(chuàng)建可以通過592.4數(shù)據(jù)集對象
填充DataSet對象:
DataSet對象是一個必須填充的容器,填充方法有多種:調(diào)用DataAdapter的Fill方法、手工填充、復(fù)制或合并其它DataSet的數(shù)據(jù)。我們這里介紹使用DataAdapter的Fill方法填充DataSet對象。2.4數(shù)據(jù)集對象填充DataSet對象:602.4數(shù)據(jù)集對象在窗體上添加一個標(biāo)簽,一個DataGridView控件,使用DataAdapter的Fill方法填充DataSet對象2.4數(shù)據(jù)集對象在窗體上添加一個標(biāo)簽,一個DataGrid612.4數(shù)據(jù)集對象privatevoidForm1_Load(objectsender,EventArgse){
stringconstring="server=(local);database=student;uid=sa;pwd=sa";SqlConnectionconnection=newSqlConnection(constring);conne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽理工大學(xué)《車輛人機(jī)工程學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 國家著作權(quán)軟件著作權(quán)轉(zhuǎn)讓合同
- 2024-2025學(xué)年新教材高中歷史第5課古代非洲與美洲課時素養(yǎng)評價含解析新人教版必修中外歷史綱要下
- 高中歷史第六單元資本主義運(yùn)行機(jī)制的調(diào)節(jié)第19課當(dāng)代資本主義的新變化史料解讀素材北師大版必修2
- 大班音樂《粗心的小畫家》課件
- 2024房屋維修工程施工合同
- 2024裝修合同簽署小常識分享
- 2024辦公設(shè)備采購合同范本
- 2024【服務(wù)協(xié)議模板】代駕服務(wù)協(xié)議合同范本
- 2024裝修合同制定的注意事項(xiàng)
- 籃球社團(tuán)教案
- 2024 美國中概股上市公司發(fā)展現(xiàn)狀白皮書
- 喪葬費(fèi)家庭協(xié)議書范文范本
- 公司對公司走賬協(xié)議書范文模板
- 留置導(dǎo)尿并發(fā)癥的預(yù)防及處理
- 消防安全宣傳教育-開展“消防安全大家談”、“消防公益說”專題講座
- 中小學(xué)119消防宣傳月活動方案3篇
- 部編版五年級語文上冊快樂讀書吧測試題及答案
- 中匯富能排矸場設(shè)計(jì)
- 江蘇省2024-2025學(xué)年八年級上學(xué)期期中專題復(fù)習(xí)最值問題專題訓(xùn)練
- 人教版2024新版八年級全一冊信息技術(shù)第1課 開啟物聯(lián)網(wǎng)之門 教學(xué)設(shè)計(jì)
評論
0/150
提交評論