ASPNET35开发大全第10章.docx

上传人:b****8 文档编号:9572202 上传时间:2023-05-20 格式:DOCX 页数:30 大小:661.51KB
下载 相关 举报
ASPNET35开发大全第10章.docx_第1页
第1页 / 共30页
ASPNET35开发大全第10章.docx_第2页
第2页 / 共30页
ASPNET35开发大全第10章.docx_第3页
第3页 / 共30页
ASPNET35开发大全第10章.docx_第4页
第4页 / 共30页
ASPNET35开发大全第10章.docx_第5页
第5页 / 共30页
ASPNET35开发大全第10章.docx_第6页
第6页 / 共30页
ASPNET35开发大全第10章.docx_第7页
第7页 / 共30页
ASPNET35开发大全第10章.docx_第8页
第8页 / 共30页
ASPNET35开发大全第10章.docx_第9页
第9页 / 共30页
ASPNET35开发大全第10章.docx_第10页
第10页 / 共30页
ASPNET35开发大全第10章.docx_第11页
第11页 / 共30页
ASPNET35开发大全第10章.docx_第12页
第12页 / 共30页
ASPNET35开发大全第10章.docx_第13页
第13页 / 共30页
ASPNET35开发大全第10章.docx_第14页
第14页 / 共30页
ASPNET35开发大全第10章.docx_第15页
第15页 / 共30页
ASPNET35开发大全第10章.docx_第16页
第16页 / 共30页
ASPNET35开发大全第10章.docx_第17页
第17页 / 共30页
ASPNET35开发大全第10章.docx_第18页
第18页 / 共30页
ASPNET35开发大全第10章.docx_第19页
第19页 / 共30页
ASPNET35开发大全第10章.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ASPNET35开发大全第10章.docx

《ASPNET35开发大全第10章.docx》由会员分享,可在线阅读,更多相关《ASPNET35开发大全第10章.docx(30页珍藏版)》请在冰点文库上搜索。

ASPNET35开发大全第10章.docx

ASPNET35开发大全第10章

第10章访问其他数据源

在ADO.NET体系中,非常重要的组件就是.NETDataProvider,它负责建立与数据库之间的连接并执行数据操作。

ADO.NET提供了多种.NETDataProvider,负责连接不同的数据库。

在前面的章节中,通常使用的是SQLServer.NETDataProvider,使用其他的.NETDataProvider能够访问其他类型的数据库。

10.1使用ODBC.NETDataProvider

ODBC(OpenDatabaseConnection,开放式数据互连)是访问数据库的一个统一的接口标准。

在C++开发中,经常使用ODBC来与数据库互连,.NET同样提供了连接ODBC的方法。

ODBC可以让开发人员通过API来访问多种不同的数据库,包括SQLServer、Access、MySql等。

10.1.1ODBC.NETDataProvider简介

ODBC(OpenDatabaseConnection,开放式数据互连)是访问数据库的一个统一的接口标准,它允许开发人员使用ODBCAPI(应用程序接口)来访问多种不同的数据源,并执行数据操作。

当使用应用程序时,应用程序首先通过使用ODBCAPI与驱动管理器进行通信。

ODBCAPI由一组ODBC函数调用组成,通过API调用ODBC函数提交SQL请求,然后驱动管理器通过分析ODBC函数并判断数据源的类型。

驱动管理器会配置正确的驱动器,然后将ODBC函数调用传递给驱动器。

最后,驱动器处理ODBC函数调用,把SQL请求发送给数据源,数据源执行相应操作后,驱动器返回执行结果,管理器再吧执行结果返回给应用程序,如图10-1所示。

图10-1ODBC原理图

使用命名空间System.Data.Odbc才能够使用ODBC.NETDataProvider来访问ODBC数据源,并且支持对原有的ODBC驱动程序的访问。

通过ODBC能够连接和执行数据操作,其访问方式和SQLServer.NETDataProvider相似,都需要先与数据源建立连接并打开连接,然后创建Command对象执行相应操作,最后关闭数据连接。

通过ODBC驱动程序访问数据源与SQLServer.NETDataProvider相同,ODBC.NETDataProvider同样包含Connection、Command、DataReader等类为开发人员提供数据的遍历和存取等操作,这些类和功能如下所示。

❑OdbcConnection:

建立与ODBC数据源的连接。

❑OdbcCommand:

执行一个SQL语句或存储过程。

❑OdbcDataReader:

与Command对象一起使用,读取ODBC数据源。

❑OdbcDataAdapter:

创建适配器,用来填充DataSet。

❑OdbcCommandBuilder:

用来自动生成插入、更新、删除等操作的SQL语句。

上述对象在ADO.NET中经常遇到,在前面的章节中,SQLServer.NETDataProvider同样包括这些对象,使用ODBC操作数据源的操作方法与SQLServer.NETDataProvider基本相同,使得开发人员无需额外的学习即可轻松使用。

10.1.2建立连接

ODBC.NETDataProvider连接数据库有两种方法,一种是通过DSN连接数据库,第二种就是使用OdbcConnection对象建立与数据库的连接。

1.使用DSN的连接字符串进行连接

使用DSN(DataSourceName,数据源名)连接数据库,必须首选创建ODBC数据源,当创建一个ODBC数据源时,需要在管理工具中配置。

在开始菜单中找到并打开【控制面板】,然后在【控制面板】中选择【管理工具】选项,在【管理工具】选项中选择【数据源(ODBC)】选项,选择后还需要选择【系统DSN】标签用于系统DSN的配置,如图10-2所示。

单击【添加】按钮,在弹出的对话框中选择合适的驱动程序,由于这里需要使用DSN连接ACCESS数据库,就需要选择ACCESS数据库的相应的驱动,这里选择【MicrosoftAccessDriver(*mdb)】选项,如图10-3所示。

图10-2数据源管理器图10-3创建新数据源

单击【选择】按钮可以为需要使用数据库的应用程序选择相应的数据库,在选择完成相应的数据库后就能够在应用程序中使用DSN连接该数据源,如图10-4所示。

图10-4选择数据源

选择好相应的驱动程序后,系统会弹出【ODBCMicrosoftAccess安装】对话框并为驱动设置数据源名和说明,如图10-5所示。

单击【确定】按钮就完成了数据源的配置,如图10-6所示。

图10-5命名数据源图10-6数据源配置完毕

当配置完成数据源后,就可以编写.NET应用程序来访问数据源。

打开VisualStudio2008,选择【ASP.NETWeb应用程序】选项,如图10-7所示。

图10-7创建ASP.NET应用程序

当创建完成数据源之后,就可以使用OdbcConnection对象连接应用程序和数据库,与连接字串一样,OdbcConnection对象需要使用Open方法才能打开与数据库之间的连接。

在使用OdbcConnection对象同样需要使用命名控件System.Data.Odbc,示例代码如下所示。

usingSystem.Data.Odbc;

引用了System.Data.Odbc命名空间后,就可以创建Connection对象进行数据连接,示例代码如下所示。

stringstr=@"DSN=guojing";//使用ODBC数据源

OdbcConnectioncon=newOdbcConnection(str);//创建OdbcConnection对象

con.Open();//打开数据库连接

上述代码使用了ODBC数据源,数据源的名称和刚才创建的名称相同,数据库连接字串直接使用“DNS=数据源名称”即可。

打开了与数据库的连接后,即可对数据库进行操作,操作方法同样和普通的方法没有区别。

如果希望执行查询语句并填充数据集,则需要创建DataAdapter对象和DataSet对象,示例代码如下所示。

stringstrsql="select*frommytable";

OdbcDataAdapterda=newOdbcDataAdapter(strsql,con);//创建DataAdapter对象

DataSetds=newDataSet();//创建DataSet

da.Fill(ds,"tablename");//填充数据集

若需要执行插入、更新、删除等操作,可以使用Command对象执行相应的操作,示例代码如下所示。

OdbcCommandcmd=newOdbcCommand("insertintomytablevalues('title')",con);

cmd.ExecuteNonQuery();//执行SQL语句

当需要对其他的数据源执行操作时,在配置DSN时配置其他数据源和数据源驱动程序即可,如图10-8所示。

图10-8配置其他数据源

使用ODBC配置数据源有一些好处,就是能够为其他类型的数据库配置数据驱动而不用考虑驱动如何进行手动方式连接。

2.使用接字符串进行连接(ACCESS)

ACCESS数据库是桌面级的数据库,是以一种文件形式保存的数据库。

在使用ACCESS数据库时,很多情况下都不能依靠ODBC建立数据驱动来连接数据库,在这种情况下,需要使用连接字符串连接ACCESS数据库,示例代码如下所示。

stringstr="provider=Microsoft.Jet.OLEDB.4.0;

DataSource=D:

\ASP.NET3.5\源代码\第10章\10-1\10-1\acc.mdb";//配置数据库路径

上述代码使用了Micorsoft.Jet.OLEDB4.0驱动进行ACCESS数据库的连接。

在上述代码中,ACCESS文件的地址为“D:

\ASP.NET3.5\源代码\第10章\10-1\10-1”。

但是这样编写代码有若干坏处,最大的坏处就是暴露了物理路径,当非法用户访问或获取代码后,能容易的就能够获取数据库的信息并通过下载工具下载数据库,这样是非常不安全的。

为了提高应用程序的安全性,开发人员可以使用Server.MapPath方法指定相对路径,示例代码如下所示。

stringstr="provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath("acc.mdb")+"";

上述代码指定了数据库的文件,以及相对路径,当acc.mdb与文件夹路径相同时,系统会隐式的补完绝对路径,而不会轻易的暴露物理路径,如果acc.mdb在文件夹的上层路径,则只需要使用“../”来确定相对路径。

当指定数据库文件地址后,可以使用Connection对象进行数据库连接操作并使用Open方法打开数据连接,示例代码如下所示。

OdbcConnectioncon=newOdbcConnection(str);//配置连接对象

con.Open();//打开连接

3.使用接字符串进行连接(SQLServer)

SQLServer数据库可以采用两种不同的连接方式,正如SQLServerManagementStudio中注册连接一样,包括Windows安全认证和SQLServer验证两种验证方式,SQLServerManagementStudio中注册连接的方式如图10-9所示。

图10-9SQLServer的两种连接方式

当使用Windows安全认证进行数据连接时,SQLServer无需用户提供连接的用户名和密码即可连接,因为Windows安全认证是通过Windows登录时的账号来登录的。

开发ASP.NET应用程序时,需要显式的声明这是一个安全的连接,示例代码如下所示。

@"Driver={SQLServer};Server=(local);Database=mytable;Trusted_Connection=Yes";

如果需要使用SQLServer验证方式连接数据库,就不能够使用Trusted_Connection属性进行数据连接,而需要配置User=用户名;Password=密码,示例代码如下所示。

@"Driver={SQLServer};Server=(local);Database=mytable;UserID=sa;Password=";

10.2使用OLEDB.NETDataProvider

OLEDB是访问数据库的另一个统一的接口标准,它建立在ODBC基础之上,通过OLEDB可以访问关系型数据库和非关系型数据库,OLEDB不仅使应用程序和数据库之间的交互减少,还能够最大限度的提升数据库性能。

10.2.1OLEDB.NETDataProvider简介

OLEDB(ObjectLinkandEmbeddingDatabase,对象连接与嵌套数据库)是访问数据库的另一个统一的接口标准,它建立在ODBC基础之上,不仅能够提供传统的数据库访问,并且能够访问关系型数据库和非关系型数据库。

OLEDB其本质就是一个封装数据库访问的一系列COM接口,使用COM接口不仅能够减少应用程序和数据库之间的通信和交互,也能够极大的提升数据库的性能,让数据库的访问和操作更加便捷。

OLEDB.NETDataProvider是OLEDB数据源的托管数据提供者,OLEDB.NETDataProvider能够在不更改COM组件的情况下,使用COMInterpol来使用OLEDB.NETDataProvider访问数据源,如果需要使用OLEDB.NETDataProvider访问数据源,则必须存在一个支持OLEDB.NETDataProvider的OLEDBProvider。

OLEDB.NETDataProvider访问原理图如图10-10所示。

图10-10OLEDB.NETDataProvider原理图

OLEDB.NETDataProvider支持OLEDBProvider包括:

❑SQLOLEDB:

用来访问SQLServer数据库。

❑MSDAORA:

用来访问Oracle数据库。

❑Microsoft.Jet.OLEDB.4.0:

用于访问Access等使用Jet引擎的数据库。

使用OLEDB.NETDataProvider访问数据库同ODBC.NETDataProvider相同,具有Connection对象、Command对象等用于数据库的连接和执行,以及数据存储等,常用对象如下所示。

❑OleDbConnection:

建立与ODBC数据源的连接。

❑OleDbCommand:

执行一个SQL语句或存储过程。

❑OleDbDataReader:

与Command对象一起使用,读取ODBC数据源。

❑OleDbDataAdapter:

创建适配器,用来填充DataSet。

❑OleDbCommandBuilder:

用来自动生成插入、更新、删除等操作的SQL语句。

这些常用的对象使用方法同其他ADO.NET数据操作类相同,使用Connection对象进行数据库连接,连接后,使用Command对象进行数据库操作,并使用Close方法关闭数据连接。

10.2.2建立连接

使用OleDb连接数据库基本只需要使用字符串连接方式即可,当需要使用OleDb中的对象时,必须使用命名空间System.Data.OleDb,示例代码如下所示。

usingSystem.Data.OleDb;//使用OleDb命名空间

使用命名空间后,就能够创建OleDb的Connection对象,以及Command对象对数据库进行连接和数据操作。

1.使用接字符串进行连接(ACCESS)

Access数据库是一种桌面级的数据库,同文件类型的数据库类似,所以连接Access数据库时,必须指定数据库文件的路径,或者使用Server.MapPath来确定数据库文件的相对位置。

示例代码如下所示。

stringstr="provider=Microsoft.Jet.OLEDB.4.0;

DataSource="+Server.MapPath("access.mdb")+"";//设置连接字串

OleDbConnectioncon=newOleDbConnection(str);//创建连接对象

try

{

con.Open();//打开连接

Label1.Text="连接成功";//显式提示信息

con.Close();//关闭连接

}

catch(Exceptionee)//抛出异常

{

Label1.Text="连接失败";

}

上述代码设置了Access数据库连接字串,并使用OleDb的Connection方法创建数据连接,创建连接后打开数据连接,如果数据连接打开成功,则返回成功,否则返回连接失败。

2.使用接字符串进行连接(SQLServer)

当需要连接SQLServer时,无需对连接、执行等操作进行修改,只需要对数据库连接字串进行修改即可,示例代码如下所示。

OleDbConnectioncon=newOleDbConnection();

con.ConnectionString="Provider=SQLOLEDB;Data

Source=(local);InitialCatalog=mytable;uid=sa;pwd=sa";//初始化连接字串

try

{

con.Open();//尝试打开连接

Label1.Text="连接成功";//显式连接信息

con.Close();//关闭连接

}

catch

{

Label1.Text="连接失败";//抛出异常

}

上述代码只需修改连接字串的格式,而无需修改其他ADO.NET中的对象,以及对象执行的方法即可。

10.3访问MySql

MySql是一个开源的小型关系型数据库,MySql数据库功能性强、体积小、运行速度快、成本低和安全性强,并且广泛的被中小型应用所接受。

MySql通常情况下和PHP一起开发使用,在ASP.NET中,同样能够使用MySql进行数据库的存储。

10.3.1MySql简介

MySql(http:

//www.MyS)是一套开源的小型关系型数据库,MySql能够执行标准的SQL语句进行数据操作。

MySql能够支持多种操作系统,包括Windows、Linux、MacOS等等,是一种跨平台的数据库产品,并且MySql还为多种语言提供了API,这些语言包括传统的C/C++也包括新近的Python和Ruby,MySql具有功能性强、体积小、运行速度快、成本低和安全性强等特点,MySql还具有以下特性:

❑MySql具有客户端/服务器结构的分布式数据库管理系统。

❑支持多个操作系统。

❑为多种编程语言提供API。

❑支持多用户,多线程操作数据库。

❑提供了TCP/IP,ODBC和JDBC等多种数据库连接方式。

❑优化SQL语句能力,提升性能。

❑支持ANSI标准的所有数据类型。

❑开放源代码,并且可以免费下载安装。

MySql不仅具有良好的性能表现,同时MySql还能够执行复杂的SQL语句操作,但是MySql的缺点就在于无法创建和使用存储过程,缺少一些大型数据库所必备的功能。

10.3.2建立连接

ASP.NET应用程序需要使用ODBC.NETDataProvider连接MySql数据库。

在连接数据库之前,MySql数据库能够被.NETDataProvider识别和驱动必须首先安装MySqlODBC驱动程序(MySql-connector-odbc-5.1.5),开发人员可以在官方网站免费获取MySqlODBC驱动程序并免费下载(http:

//dev.MySODBC驱动程序就会弹出安装向导,并提示安装。

通常情况下,只需要选择典型安装即可如图10-11和图10-12所示。

图10-11安装MySqlODBC驱动程序图10-12选择安装类型

选择完成后,单击【Next】按钮后即可完成安装。

安装完成MySqlODBC驱动程序后,单击【开始】菜单找到【控制面板】,在【控制面板】的【管理工具】中选择【数据源ODBC】选项,并在【数据源ODBC选项】对话框中选择【驱动程序】选项卡,如果【驱动程序】选项卡中已经存在MySqlODBCDriver选项,则说明MySqlODBC驱动程序已经安装完成。

当安装完成后,需要新建DSN,如图10-13和图10-14所示。

图10-13驱动程序已经安装完毕图10-14新建MySqlDSN

单击完成,系统会弹出对话框用于指定DNS名、MySql服务器名、数据库名、密码、端口等信息,如图10-15所示。

图10-15为MySqlODBC配置DSN

配置完成后,即可通过使用ODBC类库进行数据库操作,示例代码如下所示。

stringstr=@"DSN=guojing";//设置Connection属性,使用MySqlDSN

OdbcConnectioncon=newOdbcConnection(str);//设置Connection对象

con.Open();//打开连接

OdbcDataAdapterda=newOdbcDataAdapter("select*frommytables",con);//创建DataAdapter

DataSetds=newDataSet();//创建DataSet对象

da.Fill(ds,"MySqltable");//填充DataSet数据集

同样可以创建Command对象进行数据操作,示例代码如下所示。

OdbcCommandcmd=newOdbcCommand("insertintomytablesvalues('MySqltitle')",con);

cmd.ExecuteNonQuery();//执行Command方法

con.Close();

上述代码同连接和使用SQL数据库基本相同,其中str变量是配置的是DSN的属性。

当需要脱离DSN连接MySql数据库时,可以不需要配置DSN来访问MySql数据库,在编写MySql数据库连接字符串时,需要指定驱动程序名称、IP地址或数据库名,常用的关键字如下所示。

❑Driver:

设置驱动程序名。

❑Server:

设置服务器的IP地址或者是本地主机。

❑Database:

设置数据库名称。

❑Option:

设置选项值。

❑UID:

设置连接用户名。

❑PWD:

设置连接密码。

❑Port:

设置连接端口,默认值为3306。

编写MySql数据库连接字串代码如下所示。

stringstrbase=@"Driver=MySqlODBC5.1Driver;Server=localhost;Database=test;UID=guojing";

上述字串能够连接MySql数据库,开发人员在连接数据库后就能够使用Command对象进行相应的数据存储和操作。

10.4访问Excel

Excel同Access数据库一样,都是MicrosoftOffice办公软件中的一个组件,Excel主要用来处理电子表格,同时Excel也能够方便的进行数据存储,并提供强大的运算能力和统计功能,经常使用于办公环境。

10.4.1Excel简介

在办公环境中,大部分的办公人员都使用Excel进行报表处理,所以,Excel中存储着大量的信息。

这些信息对决策者或者是办公自动化管理而言,都比较重要,在办公室应用中,很多文档都是通过Excel保存在计算机中的,所以在编写应用程序时,常常需要访问Excel来访问和存储数据。

但是,开发人员会发现通过应用程序访问Excel是一件非常困难的事情。

因为Excel并不是数据库,所以Excel不支持相关的数据结构,所以当开发人员需要对Excel进行数据访问时,会变得比较困难。

但是从另一个角度来看,Excel文件是由一张张工作表组成,其结构很像数据

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2