第10章访问其他数据源35开发共_第1页
第10章访问其他数据源35开发共_第2页
第10章访问其他数据源35开发共_第3页
第10章访问其他数据源35开发共_第4页
第10章访问其他数据源35开发共_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章其他数据ADO.NET体系中,非常重要的组件就是.NETDataProvider,它负责建立与数据库之间的连接并执行数据操作。ADO.NET提供了多种.NETDataProvider,负责连接不同的数据库。面的章节中,通常使用的是SQLServer.NETDataProvider,使用其他的.NETDataProvider能够其他类型的数据使用ODBC.NETData员通过API来多种不同的数据库,包括SQLServer、Access、MySql等。ODBC.NETDataProvider简介ODBC(OpenDatabaseConnection,开放式数据互连)是数据库的一个统一的接口标准,它允许开发人员使用ODBCAPI(应用程序接口)来多种不同的数据源,并执行数据操作。ODBCAPI与驱动管理器进行通信。ODBCAPI由一组ODBCSQL请求发送给数据源,数据源执行相应操作后,驱动器返回执行结果,管理器再吧执行结果返回给应用程序,如图10-1所示。10-1ODBC使用命名空间System.Data.Odbc才能够使用ODBC.NETDataProvider来ODBC数据源,并且支持对原有的ODBC驱动程序的。通过ODBC能够连接和执行数据操作,其方式和SQLServerNETDataProviderCommand对象执行通过ODBC驱动程序数据源与SQLServer.NETDataProvider相同,ODBC.NETDataProvider同样包含、mand、DataReader等类为开发人员提供数据的遍历和存取等操作,这些类和OdbcDataAdapter:创建适配器,用来填充DataSet上述对象在ADO.NET中经常遇到,面的章节中,SQLServer.NETDataProvider同样包括这些对象,使用ODBCSQLServerNETDataProvider基本相同,使得开发人员无建立连.使用DSN的连接字符串进行连ACCESS数据库的相应的驱动,这里选择【AccessDriver(*mdb)】选项,如图10-3所示。图10-2数据源管理 图10-3创建新数据后就能够在应用程序中使用DSN连接该数据源,如图10-4所示。10-4名和说明,如图10-5所示。单击【确定】按钮就完成了数据源的配置,如图10-6所示。图10-5命名数据 图10-6数据源配置完当配置完成数据源后,就可以编写.NET应用程序来数据源。打开VisualStudio2008,选10-7ASP.NET样需要使用命名控件System.Data.Odbc,示例代码如下所示。using stringstr=OdbcConnectioncon=newOdbcConnection(str);

上述代码使用了OBC数据源,数据源的名称和刚才创建的名称相同,数据库连接字串直接使用“=数据源名称”即可。打开了与数据库的连接后,即可对数据库进行操作,操作方法同样和普通DataAdpterDataet对象,stringstrsql="select*fromOdbcDataAdapterda=newOdbcDataAdapter(strsql,con);DataSetds=newDataSet();da.Fill(ds,

mandmandcmd=mand("insertintomytablevalues//SQL语10-810-8使用接字符串进行连接很多情况下都不能依靠ODBC建立数据驱动来连接数据库,在这种情况下,需要使用连接字符串连接ACCESS数据库,示例代码如下所示。stringstr=.Jet.OLEDB.4.0;DataSource="+Server.MapPath("acc.mdb")+处就是了物理路径,当用户或获取代码后,能容易的就能够获取数据库的信息并通过stringstr=.Jet.OLEDB.4.0;DataSource="+Server.MapPath("acc.mdb")+OdbcConnectioncon=newacc.mdb与文件夹路径相同时,系统会隐式的补完绝对路径,而不会轻易的物理路径,如果acc.mdb在文件夹的上层路OdbcConnectioncon=new使用接字符串进行连接(SQLSQLServer数据库可以采用两种不同的连接方式,正如SQLServerManagementStudio中连接Windows安全认证和SQLServer验证两种验证方式,SQLServerManagementStudio中连接的方式如图10-9所示。10-9SQLServer的两种连接方当使用Windows安全认证进行数据连接时,SQLServer无需用户提供连接的用户名和即可连显式的这是一个安全的连接,示例代码如下所示。 @"Driver={SQLServer}; SQLServer验证方式连接数据库,就不能够使用Trusted_Connection属性进行数据连接,而需要配置User=用户名;Password=,示例代码如下所示。 使用OLEDB.NETData问关系型数据库和非关系型数据库,OLEDB不仅使应用程序和数据库之间的交互减少,还能够最大限OLEDB.NETDataProvider简介OLEDB(ObjectLinkandEmbeddingDatabase,对象连接与嵌套数据库)是数据库的另一个统OLEDB其本质就是一个封装数据库的一系列COM接口,使用COM接口不仅能够减少应用OLEDB.NETDataProviderOLEDB数据源的托管数据提供者,OLEDB.NETDataProvider能够在不更改COM组件的情况下,使用COMInterpol来使用OLEDB.NETDataProvider数据源,如果需要使用OLEDB.NETDataProvider数据源,则必须存在一个支持OLEDB.NETDataProvider的OLEDBProvider。OLEDB.NETDataProvider原理图如图10-10所示。10-10OLEDB.NETDataProviderOLEDB.NETDataProvider支持OLEDBProvider包括MSDAORA:用来Oracle数据库.Jet.OLEDB.4.0:用于Access等使用Jet引擎的数据库使用OLEDB.NETDataProvider数据库同ODBC.NETDataProvider相同,具有Connection对象、Command对象等用于数据库的连接和执行,以及数据等,常用对象如下所示。OleDbDataAdapter:创建适配器,用来填充DataSet连接后,使用Command对象进行数据库操作,并使用Close方法关闭数据连接。建立连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中的对象,以及对象执行的方法MySqlMySql是一个开源的小型关系型数据库,MySql数据库功能性强、体积小、运行速度快、成本低和同样能够使用MySql进行数据库的。MySql简介 )是一套开源的小型关系型数据库,MySqlSQL语句进行数据操作。MySqlWindows、Linux、MacOS等等,是一种跨平台的数据库产品,并且MySql还为多种语言提API,这些语言包括传C/C++也包括新Python和Ruby,MySql具有功能性强、体积小、运行速度快、成本低和安全性强等特点,MySql还具有以下特为多种编程语言提供APIANSI标准的所有数据类型建立连ASP.NETODBCNETDataProviderMySqlMySql数据库能够被.NETDataProvider识别和驱动必须首先安装MySqlODBC驱动程序 /downloads/connector/odbc/5.1.html#win32)。单击的安装程序,MySqlODBC图10-11安装MySqlODBC驱动程 图10-12选择安装类则说明MySqlODBC驱动程序已经安装完成。当安装完成后,需要新建DSN10-13和图10-14图10-13驱动程序已经安装完 图10-14新建MySql如图10-15所示。10-15MySqlODBCstringstr=OdbcConnectionstringstr=OdbcConnectionconnewOdbcConnection(str);//Connection属性,MySql//设置Connection对OdbcDataAdapterdanewOdbcDataAdapter("select*frommytables",con);//DataSetds=new //创建DataSet对da.Fill(ds //DataSet数据mandmandcmd=newmand("insertintomytablesvalues('MySqltitle')",DSN连接MySql数据库时,可以不需要配置DSN来MySql数据库,在编写MySql数据库连接字符串时,需要指定驱动程序名称、IP地址或数据库名,常用的关键字如下所示。Driver:设置驱动程序名Database:设置数据库名Option:设置选项值UID:设置连接用户名PWD:设置连接Port3306。 stringstrbase=@"Driver=MySqlODBC5.1ExcelExcel同Access数据库一样,都是Office办公软件中的一个组件,Excel主要用来处理电子表格,同时Excel也能够方便的进行数据,并提供强大的运算能力和统计功能,经常使用于办公Excel简介保存在计算机中的,所以在编写应用程序时,常常需要Excel来和数据。但是,开发人员会发现通过应用程序Excel是一件非常的事情。ExcelExcelExcel进行数据时,会变得比较。但是从另一个角度来看,Excel文件是由一张张工作表组成,其结构很像数据库中的表,所以,应该能够通过相应的让应用程序Excel。建立连ASP.NETExcel通常有两种方法,一种是使用ODBC.NETDataProvider进行,另一种则象一样,和操作Excel文件时,都必须使用Connection对象进行连接,然后使用Command对象执行SQL命令。DSNExcel数据10-16Excel图10-17创建数据 图10-18数据源安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文件的连接需要在连接字符串中指定驱动器名,同样可以在管理工具中创建【数据源(ODBC)】来txt文本文件,如图10-21和图10-22所示。图10-21建立数据 图10-22完成配置数据连接 {}{}{}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文件的数据连接字串中,数据库结构的中“数据库”的概念对于txt文件而言应该是文件所 System.IO命名空System.IOtxt文件进行交互,在使用System.IO命名空间时,通常需要使用File:提供用于创建、、删除、移动和打开文件的静态方法FileInfo:提供创建、、删除、移动和文件的实例方法StreamReader:从数据流中字符StreamWriter:向数据流中写入字符File类不用创建类的实例FileInfo类需要创建类的实例File类可直接调用其类的静态方法执行文件操作,效率也比FileInfo类高。OpenText:打开现有的文件进行Exists:判断一个文件是否存在if if somethinginmyrestlessdream,iseethat silenthill{{Response.Write("文件存在} 一行或ReadToEnd方 while(rd.Peek()!=-1){Response.Write(rd.ReadLine()+}

//StreamReader上述代码中,PeekStreamReader对象流中的下一个字符,但是不会把这个字符从流中删掉。如果流中没有文本字符,则会返回-1,运行结果如图10-24所示。图10-24txt文本文 是一款轻量级数据库,其类型在文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论