




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第10章其他數(shù)據(jù)ADO.NET體系中,非常重要的組件就是.NETDataProvider,它負責建立與數(shù)據(jù)庫之間的連接并執(zhí)行數(shù)據(jù)操作。ADO.NET提供了多種.NETDataProvider,負責連接不同的數(shù)據(jù)庫。面的章節(jié)中,通常使用的是SQLServer.NETDataProvider,使用其他的.NETDataProvider能夠其他類型的數(shù)據(jù)使用ODBC.NETData員通過API來多種不同的數(shù)據(jù)庫,包括SQLServer、Access、MySql等。ODBC.NETDataProvider簡介ODBC(OpenDatabaseConnection,開放式數(shù)據(jù)互連)是數(shù)據(jù)庫的一個統(tǒng)一的接口標準,它允許開發(fā)人員使用ODBCAPI(應用程序接口)來多種不同的數(shù)據(jù)源,并執(zhí)行數(shù)據(jù)操作。ODBCAPI與驅動管理器進行通信。ODBCAPI由一組ODBCSQL請求發(fā)送給數(shù)據(jù)源,數(shù)據(jù)源執(zhí)行相應操作后,驅動器返回執(zhí)行結果,管理器再吧執(zhí)行結果返回給應用程序,如圖10-1所示。10-1ODBC使用命名空間System.Data.Odbc才能夠使用ODBC.NETDataProvider來ODBC數(shù)據(jù)源,并且支持對原有的ODBC驅動程序的。通過ODBC能夠連接和執(zhí)行數(shù)據(jù)操作,其方式和SQLServerNETDataProviderCommand對象執(zhí)行通過ODBC驅動程序數(shù)據(jù)源與SQLServer.NETDataProvider相同,ODBC.NETDataProvider同樣包含、mand、DataReader等類為開發(fā)人員提供數(shù)據(jù)的遍歷和存取等操作,這些類和OdbcDataAdapter:創(chuàng)建適配器,用來填充DataSet上述對象在ADO.NET中經(jīng)常遇到,面的章節(jié)中,SQLServer.NETDataProvider同樣包括這些對象,使用ODBCSQLServerNETDataProvider基本相同,使得開發(fā)人員無建立連.使用DSN的連接字符串進行連ACCESS數(shù)據(jù)庫的相應的驅動,這里選擇【AccessDriver(*mdb)】選項,如圖10-3所示。圖10-2數(shù)據(jù)源管理 圖10-3創(chuàng)建新數(shù)據(jù)后就能夠在應用程序中使用DSN連接該數(shù)據(jù)源,如圖10-4所示。10-4名和說明,如圖10-5所示。單擊【確定】按鈕就完成了數(shù)據(jù)源的配置,如圖10-6所示。圖10-5命名數(shù)據(jù) 圖10-6數(shù)據(jù)源配置完當配置完成數(shù)據(jù)源后,就可以編寫.NET應用程序來數(shù)據(jù)源。打開VisualStudio2008,選10-7ASP.NET樣需要使用命名控件System.Data.Odbc,示例代碼如下所示。using stringstr=OdbcConnectioncon=newOdbcConnection(str);
上述代碼使用了OBC數(shù)據(jù)源,數(shù)據(jù)源的名稱和剛才創(chuàng)建的名稱相同,數(shù)據(jù)庫連接字串直接使用“=數(shù)據(jù)源名稱”即可。打開了與數(shù)據(jù)庫的連接后,即可對數(shù)據(jù)庫進行操作,操作方法同樣和普通DataAdpterDataet對象,stringstrsql="select*fromOdbcDataAdapterda=newOdbcDataAdapter(strsql,con);DataSetds=newDataSet();da.Fill(ds,
mandmandcmd=mand("insertintomytablevalues//SQL語10-810-8使用接字符串進行連接很多情況下都不能依靠ODBC建立數(shù)據(jù)驅動來連接數(shù)據(jù)庫,在這種情況下,需要使用連接字符串連接ACCESS數(shù)據(jù)庫,示例代碼如下所示。stringstr=.Jet.OLEDB.4.0;DataSource="+Server.MapPath("acc.mdb")+處就是了物理路徑,當用戶或獲取代碼后,能容易的就能夠獲取數(shù)據(jù)庫的信息并通過stringstr=.Jet.OLEDB.4.0;DataSource="+Server.MapPath("acc.mdb")+OdbcConnectioncon=newacc.mdb與文件夾路徑相同時,系統(tǒng)會隱式的補完絕對路徑,而不會輕易的物理路徑,如果acc.mdb在文件夾的上層路OdbcConnectioncon=new使用接字符串進行連接(SQLSQLServer數(shù)據(jù)庫可以采用兩種不同的連接方式,正如SQLServerManagementStudio中連接Windows安全認證和SQLServer驗證兩種驗證方式,SQLServerManagementStudio中連接的方式如圖10-9所示。10-9SQLServer的兩種連接方當使用Windows安全認證進行數(shù)據(jù)連接時,SQLServer無需用戶提供連接的用戶名和即可連顯式的這是一個安全的連接,示例代碼如下所示。 @"Driver={SQLServer}; SQLServer驗證方式連接數(shù)據(jù)庫,就不能夠使用Trusted_Connection屬性進行數(shù)據(jù)連接,而需要配置User=用戶名;Password=,示例代碼如下所示。 使用OLEDB.NETData問關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫,OLEDB不僅使應用程序和數(shù)據(jù)庫之間的交互減少,還能夠最大限OLEDB.NETDataProvider簡介OLEDB(ObjectLinkandEmbeddingDatabase,對象連接與嵌套數(shù)據(jù)庫)是數(shù)據(jù)庫的另一個統(tǒng)OLEDB其本質(zhì)就是一個封裝數(shù)據(jù)庫的一系列COM接口,使用COM接口不僅能夠減少應用OLEDB.NETDataProviderOLEDB數(shù)據(jù)源的托管數(shù)據(jù)提供者,OLEDB.NETDataProvider能夠在不更改COM組件的情況下,使用COMInterpol來使用OLEDB.NETDataProvider數(shù)據(jù)源,如果需要使用OLEDB.NETDataProvider數(shù)據(jù)源,則必須存在一個支持OLEDB.NETDataProvider的OLEDBProvider。OLEDB.NETDataProvider原理圖如圖10-10所示。10-10OLEDB.NETDataProviderOLEDB.NETDataProvider支持OLEDBProvider包括MSDAORA:用來Oracle數(shù)據(jù)庫.Jet.OLEDB.4.0:用于Access等使用Jet引擎的數(shù)據(jù)庫使用OLEDB.NETDataProvider數(shù)據(jù)庫同ODBC.NETDataProvider相同,具有Connection對象、Command對象等用于數(shù)據(jù)庫的連接和執(zhí)行,以及數(shù)據(jù)等,常用對象如下所示。OleDbDataAdapter:創(chuàng)建適配器,用來填充DataSet連接后,使用Command對象進行數(shù)據(jù)庫操作,并使用Close方法關閉數(shù)據(jù)連接。建立連using using 使用接字符串進行連接stringstr=.Jet.OLEDB.4.0Datastringstr=.Jet.OLEDB.4.0DataSource="+Server.MapPath("access.mdb")+"";OleDbConnectioncon=newOleDbConnection(str);{}catch(Exception{}使用接字符串進行連接(SQLOleDbConnectioncon=newOleDbConnection();{OleDbConnectioncon=newOleDbConnection();{}{}上述代碼只需修改連接字串的格式,而無需修改其他ADO.NET中的對象,以及對象執(zhí)行的方法MySqlMySql是一個開源的小型關系型數(shù)據(jù)庫,MySql數(shù)據(jù)庫功能性強、體積小、運行速度快、成本低和同樣能夠使用MySql進行數(shù)據(jù)庫的。MySql簡介 )是一套開源的小型關系型數(shù)據(jù)庫,MySqlSQL語句進行數(shù)據(jù)操作。MySqlWindows、Linux、MacOS等等,是一種跨平臺的數(shù)據(jù)庫產(chǎn)品,并且MySql還為多種語言提API,這些語言包括傳C/C++也包括新Python和Ruby,MySql具有功能性強、體積小、運行速度快、成本低和安全性強等特點,MySql還具有以下特為多種編程語言提供APIANSI標準的所有數(shù)據(jù)類型建立連ASP.NETODBCNETDataProviderMySqlMySql數(shù)據(jù)庫能夠被.NETDataProvider識別和驅動必須首先安裝MySqlODBC驅動程序 /downloads/connector/odbc/5.1.html#win32)。單擊的安裝程序,MySqlODBC圖10-11安裝MySqlODBC驅動程 圖10-12選擇安裝類則說明MySqlODBC驅動程序已經(jīng)安裝完成。當安裝完成后,需要新建DSN10-13和圖10-14圖10-13驅動程序已經(jīng)安裝完 圖10-14新建MySql如圖10-15所示。10-15MySqlODBCstringstr=OdbcConnectionstringstr=OdbcConnectionconnewOdbcConnection(str);//Connection屬性,MySql//設置Connection對OdbcDataAdapterdanewOdbcDataAdapter("select*frommytables",con);//DataSetds=new //創(chuàng)建DataSet對da.Fill(ds //DataSet數(shù)據(jù)mandmandcmd=newmand("insertintomytablesvalues('MySqltitle')",DSN連接MySql數(shù)據(jù)庫時,可以不需要配置DSN來MySql數(shù)據(jù)庫,在編寫MySql數(shù)據(jù)庫連接字符串時,需要指定驅動程序名稱、IP地址或數(shù)據(jù)庫名,常用的關鍵字如下所示。Driver:設置驅動程序名Database:設置數(shù)據(jù)庫名Option:設置選項值UID:設置連接用戶名PWD:設置連接Port3306。 stringstrbase=@"Driver=MySqlODBC5.1ExcelExcel同Access數(shù)據(jù)庫一樣,都是Office辦公軟件中的一個組件,Excel主要用來處理電子表格,同時Excel也能夠方便的進行數(shù)據(jù),并提供強大的運算能力和統(tǒng)計功能,經(jīng)常使用于辦公Excel簡介保存在計算機中的,所以在編寫應用程序時,常常需要Excel來和數(shù)據(jù)。但是,開發(fā)人員會發(fā)現(xiàn)通過應用程序Excel是一件非常的事情。ExcelExcelExcel進行數(shù)據(jù)時,會變得比較。但是從另一個角度來看,Excel文件是由一張張工作表組成,其結構很像數(shù)據(jù)庫中的表,所以,應該能夠通過相應的讓應用程序Excel。建立連ASP.NETExcel通常有兩種方法,一種是使用ODBC.NETDataProvider進行,另一種則象一樣,和操作Excel文件時,都必須使用Connection對象進行連接,然后使用Command對象執(zhí)行SQL命令。DSNExcel數(shù)據(jù)10-16Excel圖10-17創(chuàng)建數(shù)據(jù) 圖10-18數(shù)據(jù)源安10-19protectedprotectedvoidPage_Load(objectsender,EventArgs{stringstr=OdbcConnectioncon=newOdbcConnection(str);{}{} protectedvoidPage_Load(objectprotectedvoidPage_Load(objectsender,EventArgs{stringstr=OdbcConnectioncon=newOdbcConnection(str);{ Response.Write("連接成功 OdbcDataAdapterdanewOdbcDataAdapter("select*from DataSetds=newintcount=da.Fill(ds,"exceltable");for(inti=0;i<count;i++){}//DataSet"].ToString()+"<hr/>");//}catch(Exception {}}10-20Excel使用OLEDB.NETDataProvider連接ExcelprotectedvoidPageLoad(objectsender,EventArgs{stringstr .Jet.OleDbSource="+Server.MapPath("data.xls")+";ExtendedProperties=Excel8.0;";//ExcelOleDbConnectioncon=newOleDbConnection(str); 使用OLEDB.NETDataProvider連接和操作ExcelprotectedvoidPageLoad(objectsender,EventArgs{stringstr .Jet.OleDbSource="+Server.MapPath("data.xls")+";ExtendedProperties=Excel8.0;";//ExcelOleDbConnectioncon=newOleDbConnection(str); {{}{Label1.Text="連接失敗 }}OLEDBNETDataProviderExcelADO.NETtxtDataProvider進行,或者使用OLEDB.NETDataProvider進行。而可以通過System.IO進行文本文件的。ODBE.NETDataProviderODBE.NETDataProvidertxt文件的連接需要在連接字符串中指定驅動器名,同樣可以在管理工具中創(chuàng)建【數(shù)據(jù)源(ODBC)】來txt文本文件,如圖10-21和圖10-22所示。圖10-21建立數(shù)據(jù) 圖10-22完成配置數(shù)據(jù)連接 {}{}{}protectedprotectedvoidPageLoad(objectsender,EventArgs{{OdbcDataAdapterda=newOdbcDataAdapter("select*fromdata.txt",con);DataSetds=newDataSet();for(inti=0;i<count;i++){}}{Response.Write("連接失敗}}10-23txtOLEDB.NETDataProvider.Jet.OLEDBDataSource=c:\sample\;ExtendedProperties=text;HDR=yes;FMT=Delimited");//.Jet.OLEDBDataSource=c:\sample\;ExtendedProperties=text;HDR=yes;FMT=Delimited");//OdbcDataAdapterda=OdbcDataAdapterda=newOdbcDataAdapter("select*fromdata.txt",con);DataSetds=newDataSet();for(inti=0;i<count;i++){}注意:txt文件的數(shù)據(jù)連接字串中,數(shù)據(jù)庫結構的中“數(shù)據(jù)庫”的概念對于txt文件而言應該是文件所 System.IO命名空System.IOtxt文件進行交互,在使用System.IO命名空間時,通常需要使用File:提供用于創(chuàng)建、、刪除、移動和打開文件的靜態(tài)方法FileInfo:提供創(chuàng)建、、刪除、移動和文件的實例方法StreamReader:從數(shù)據(jù)流中字符StreamWriter:向數(shù)據(jù)流中寫入字符File類不用創(chuàng)建類的實例FileInfo類需要創(chuàng)建類的實例File類可直接調(diào)用其類的靜態(tài)方法執(zhí)行文件操作,效率也比FileInfo類高。OpenText:打開現(xiàn)有的文件進行Exists:判斷一個文件是否存在if if somethinginmyrestlessdream,iseethat silenthill{{Response.Write("文件存在} 一行或ReadToEnd方 while(rd.Peek()!=-1){Response.Write(rd.ReadLine()+}
//StreamReader上述代碼中,PeekStreamReader對象流中的下一個字符,但是不會把這個字符從流中刪掉。如果流中沒有文本字符,則會返回-1,運行結果如圖10-24所示。圖10-24txt文本文 是一款輕量級數(shù)據(jù)庫,其類型在文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)設計在智能產(chǎn)品開發(fā)中的作用和價值研究
- 工業(yè)領域的智能化數(shù)據(jù)分析
- 工業(yè)設計原理與產(chǎn)品設計創(chuàng)新
- 工業(yè)設計的創(chuàng)新方法與技術應用
- 工業(yè)風格商業(yè)空間設計
- 工業(yè)風辦公室裝修風格解讀
- 工作場合有效表達的技巧
- 工廠用電安全操作規(guī)范
- 工程力學中動載材料特性研究
- 工程測量中的新方法與新技術探討
- 儲能站施工組織設計施工技術方案(技術標)
- 樓梯 欄桿 欄板(一)22J403-1
- 2024年河南省豫地科技集團有限公司招聘筆試參考題庫含答案解析
- 2023北京第二次高中學業(yè)水平合格性考試信息技術試卷試題(答案詳解)
- 二年級下冊數(shù)學教案 《生活中的大數(shù)》練習課 北師大版
- GB∕T 16762-2020 一般用途鋼絲繩吊索特性和技術條件
- 電網(wǎng)施工作業(yè)票模板
- T∕CAEPI 31-2021 旋轉式沸石吸附濃縮裝置技術要求
- 國家級高技能人才培訓基地建設項目實施管理辦法
- 彩盒成品檢驗標準
- 高層購物中心AAC墻體板材施工方案
評論
0/150
提交評論