当前位置: 首页 > 文章教程  > 计算机与互联网 > 网络编程

4.2.NETFramework数据提供程序

8/31/2020 8:52:25 PM 人评论

4.2.NETFramework数据提供程序

4.2 .NET Framework数据提供程序

学习目标

熟悉ADO.NET中常用的.NET Framework数据提供程序。

本节示例代码参考:/Code/ch04/StudyADONET。

4.2.1 .NET Framework数据提供程序概述

.NET Framework数据提供程序用于连接到数据库、执行命令和检索结果。可以直接处理检索到的结果,或将其放入ADO.NET DataSet对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。.NET Framework数据提供程序是轻量的,它在数据源和代码之间创建了一个最小层,以便在不以功能为代价的前提下提高性能。

表4-1列出了 .NET Framework中包含的.NET Framework数据提供程序。表4-2 列出了.NET Framework数据提供程序的常用核心对象。

表4-1 常用.NET Framework数据提供程序

表4-2 .NET Framework数据提供程序的常用核心对象

ADO.NET提供程序是可以与特定类型的数据库或数据存储区进行通信的类。例如,一个提供程序可能能够与SQL Server数据库进行通信,而另一个提供程序可能能够与Oracle数据库进行通信。.NET Framework中包含的提供程序有以下几种。

(1)System.Data.SqlClient命名空间中用于 SQL Server的.NET Framework数据提供程序。此提供程序为SqlDataSource控件的默认提供程序;如果使用SqlDataSource控件连接至SQL Server数据库,则无需显式指定提供程序。

(2)System.Data.OleDb命名空间中用于OLE DB的.NET Framework数据提供程序。

(3)System.Data.Odbc命名空间中用于ODBC的.NET Framework数据提供程序。

(4)System.Data.OracleClient命名空间中用于Oracle的.NET Framework数据提供程序。

可以将Web.config文件中的提供程序指定为连接字符串的一部分,也可以指定为页面上的单个数据源控件的属性。

4.2.2 ODBC数据提供程序

ODBC .NET Framework数据提供程序使用本机ODBC驱动程序管理器(DM)启用数据访问。ODBC数据提供程序支持本地事务和分布式事务。对于分布式事务,默认情况下,ODBC数据提供程序自动登记在事务中,并从Windows组件服务获取事务的详细信息。ODBC .NET Framework数据提供程序类位于System.Data. Odbc命名空间中。

表4-3显示了用于ADO.NET操作不同数据库的ODBC驱动程序。

表4-3 用于ADO.NET操作不同数据库的ODBC驱动程序

ODBC .NET Framework数据提供程序类位于System.Data.Odbc命名空间中。以下代码示例显示如何在应用程序中包含System.Data.Odbc命名空间。

(1)使用Odbc数据提供程序连接Access数据库举例。

①配置一个数据源名称如命名为access_dsn,连接某个测试的Access数据库如TestDB.mdb。

②新建ASP.NET网站项目StudyADONET,删除默认Default.aspx页面,添加页面Odbc_access.aspx。直接进入Odbc_access.aspx.cs代码窗口,必须要在代码窗口的上面先导入Odbc命名空间如“using System.Data.Odbc;”,然后编写Page_Load代码如下。

protected void Page_Load(object sender, EventArgs e)
{
      OdbcConnection conn = new OdbcConnection();
      conn.ConnectionString = "dsn=access_dsn";
      conn.Open();//打开连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Open
      conn.Close();//关闭连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Closed
      conn.Dispose();//释放连接conn
}

③按Ctrl+F5组合键,运行效果如图4-2所示就表明数据库连接已经成功了。

图4-2 页面Odbc_access.aspx运行显示效果

(2)使用Odbc数据提供程序连接SQL Server 2005数据库举例。

①配置一个数据源名称如命名为sql_dsn,连接某个测试的SQL Server数据库如TestDB。

②在网站项目StudyADONET中添加页面Odbc_sql.aspx。直接进入Odbc_ sql. aspx.cs代码窗口,必须要在代码窗口的上面先导入Odbc命名空间如“using System. Data.Odbc;”,然后编写Page_Load代码如下。

protected void Page_Load(object sender, EventArgs e)
{
      OdbcConnection conn = new OdbcConnection();
      conn.ConnectionString = "dsn=sql_dsn;uid=sa;pwd=sa;";
      conn.Open();//打开连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Open
      conn.Close();//关闭连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Closed
      conn.Dispose();//释放连接conn
}

③按Ctrl+F5组合键,运行效果如图4-2所示就表明数据库连接已经成功了。

(3)使用Odbc数据提供程序连接Oracle 10g数据库举例

① 配置一个数据源名称如命名为oracle_dsn,连接某个测试的Oracle数据库如orcl。

②在网站项目StudyADONET中添加页面Odbc_oracle.aspx。直接进入Odbc_ oracle.aspx.cs代码窗口,必须要在代码窗口的上面先导入Odbc命名空间如“using System.Data.Odbc;”,然后编写Page_Load代码如下。

protected void Page_Load(object sender, EventArgs e)
{
      OdbcConnection conn = new OdbcConnection();
      conn.ConnectionString = "dsn=oracle_dsn;uid=system;pwd=oracle;";
      conn.Open();//打开连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Open
      conn.Close();//关闭连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Closed
      conn.Dispose();//释放连接conn
}

③按Ctrl+F5组合键,运行效果如图4-2所示就表明数据库连接已经成功了。

4.2.3 OLE DB数据提供程序

OLE DB .NET Framework数据提供程序通过COM Interop使用本机OLE DB启用数据访问。OLE DB .NET Framework数据提供程序支持本地事务和分布式事务。对于分布式事务,默认情况下,OLE DB .NET Framework数据提供程序自动登记在事务中,并从Windows组件服务获取事务详细信息。OLE DB .NET Framework数据提供程序类位于System.Data.OleDb命名空间中。

表4-4显示了用于ADO.NET操作不同数据库的OLE DB驱动程序。

表4-4 用于ADO.NET的OLE DB驱动程序

OLE DB .NET Framework数据提供程序类位于System.Data.OleDb命名空间中。以下代码示例显示如何在应用程序中包含System.Data.OleDb命名空间。

(1)使用OLE DB数据提供程序连接Access数据库举例。

①在网站项目StudyADONET中添加页面OleDb_access.aspx。直接进入OleDb_ access.aspx.cs代码窗口,必须要在代码窗口的上面先导入OleDb命名空间如“using System.Data.OleDb;”,然后编写Page_Load代码如下。

protected void Page_Load(object sender, EventArgs e)
{
      OleDbConnection conn = new OleDbConnection();
      conn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data
      source=" + Server.MapPath("App_Data/TestDB.mdb");
      conn.Open();//打开连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Open
      conn.Close();//关闭连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Closed
      conn.Dispose();//释放连接conn
}

②按Ctrl+F5组合键,运行效果如图4-2所示就表明数据库连接已经成功了。

(2)使用OLE DB数据提供程序连接SQL Server 2005数据库举例。

①在网站项目StudyADONET中添加页面OleDb_sql.aspx。直接进入OleDb_ sql. aspx.cs代码窗口,必须要在代码窗口的上面先导入OleDb命名空间如“using System. Data.OleDb;”,然后编写Page_Load代码如下。

protected void Page_Load(object sender, EventArgs e)
{
      OleDbConnection conn = new OleDbConnection();
      conn.ConnectionString= "provider=SQLOLEDB;uid=sa;pwd=sa;server
      =CF18949F05344D3;database=testDB";
      conn.Open();//打开连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Open
      conn.Close();//关闭连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Closed
      conn.Dispose();//释放连接conn
}

②按Ctrl+F5组合键,运行效果如图4-2所示就表明数据库连接已经成功了。

(3)使用OLE DB数据提供程序连接Oracle10g数据库举例。

①在网站项目StudyADONET中添加页面OleDb_oracle.aspx。直接进入OleDb_ oracle.aspx.cs代码窗口,必须要在代码窗口的上面先导入OleDb命名空间如“using System.Data.OleDb;”,然后编写Page_Load代码如下。

protected void Page_Load(object sender, EventArgs e)
{
      OleDbConnection conn = new OleDbConnection();
      conn.ConnectionString= "provider=MSDAORA;uid=system;pw
      d=oracle;server=orcl;";
      conn.Open();//打开连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Open
      conn.Close();//关闭连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Closed
      conn.Dispose();//释放连接conn
}

②按Ctrl+F5组合键,运行效果如图4-2所示就表明数据库连接已经成功了。

4.2.4 SQL Server数据提供程序

SQL Server .NET Framework数据提供程序使用它自身的协议与SQL Server通信。由于它经过了优化,可以直接访问SQL Server而不用添加OLE DB或开放式数据库连接(ODBC)层,因此它是轻量的,并具有良好的性能。OLE DB .NET Framework数据提供程序通过OLE DB服务组件(提供连接池和事务服务)和数据源的OLE DB提供程序与OLE DB数据源进行通信。

若要使用SQL Server .NET Framework数据提供程序,必须能够访问SQL Server 7.0 或更高版本。SQL Server .NET Framework数据提供程序位于 System.Data. SqlClient命名空间。对于SQL Server的较早版本,可以将OLE DB .NET Framework数据提供程序与SQL Server OLE DB数据提供程序(SQLOLEDB)一起使用。

SQL Server .NET Framework数据提供程序支持本地事务和分布式事务。对于分布式事务,默认情况下,SQL Server .NET Framework数据提供程序自动登记在事务中,并从Windows组件服务或System.Transactions获取事务的详细信息。

以下代码示例显示如何在应用程序中包含System.Data.SqlClient命名空间。

使用SQL Server数据提供程序连接SQL Server 2005数据库举例。

(1)在网站项目StudyADONET中添加页面Sqlclient_sql.aspx。直接进入SqlClient_ sql.aspx.cs代码窗口,必须要在代码窗口的上面先导入Sqlclient命名空间如“using System.Data.SqlClient;”,然后编写Page_Load代码如下。

protected void Page_Load(object sender, EventArgs e)
{
      SqlConnection conn = new SqlConnection();
      conn.ConnectionString= "server=CF18949F05344D3;uid=sa;pwd=
      sa;database=testDB;";
      conn.Open();//打开连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Open
      conn.Close();//关闭连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Closed
      conn.Dispose();//释放连接conn
}

(2)按Ctrl+F5组合键,运行效果如图4-2所示就表明数据库连接已经成功了。

4.2.5 Oracle数据提供程序

Oracle .NET Framework数据提供程序通过Oracle客户端连接软件启用对Oracle数据源的数据访问。该数据提供程序支持Oracle客户端软件8.1.7版或更高版本。该数据提供程序支持本地事务和分布式事务。

Oracle .NET Framework数据提供程序要求必须先在系统上安装Oracle客户端软件(8.1.7版或更高版本),才能连接到Oracle数据源。

Oracle .NET Framework数据提供程序类位于System.Data.OracleClient命名空间中,并包含在System.Data.OracleClient.dll程序集中。在编译使用该数据提供程序的应用程序时,需要同时引用 System.Data.dll和System.Data.OracleClient.dll。

以下代码示例显示如何在应用程序中包含System.Data.OracleClient命名空间。

使用Oracle数据提供程序连接Oracle 10g数据库举例。

(1)在网站项目StudyADONET中添加页面OracleClient_oracle.aspx。直接进入OracleClient_oracle.aspx.cs代码窗口,必须要在代码窗口的上面先导入OracleClient命名空间如“using System.Data.OracleClient;”,然后编写Page_Load代码如下。

protected void Page_Load(object sender, EventArgs e)
{
      SqlConnection conn = new SqlConnection();
      conn.ConnectionString= "server=CF18949F05344D3;uid=sa;pwd
      =sa;database=testDB;";
      conn.Open();//打开连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Open
      conn.Close();//关闭连接conn
      Response.Write(conn.State.ToString() + "<br />");//输出Closed
      conn.Dispose();//释放连接conn
}

(2)按Ctrl+F5组合键,运行效果如图4-2所示就表明数据库连接已经成功了。

由于默认情况下,.NET不直接识别“System.Data.OracleClient”,必须先要添加Oracle操作的引用,添加方法如下。

(1)在网站项目StudyADONET的“解决方案资源管理器”中右击,在弹出的快捷菜单中选择“添加引用”命令,具体如图4-3所示。

图4-3 选择“添加引用”命令

(2)弹出如图4-4所示的对话框。

图4-4 “添加引用”对话框

(3)在图4-4中选择“System.Data.OracleClient”项目,然后单击“确定”按钮即可。

上一篇:4.1ADO.NET概述

下一篇:4.3操作数据库

相关教程

共有条评论 网友评论

验证码: 看不清楚?