源代码:13033480群共享
一、什么是ADO.NET
ADO.NET 是一组类,这些类由.NET Framework提供,所以又叫.NET Framework 数据提供程序。安装.NET Framework时会安装这些类, 位于 System.Data.dll 中。
.NET Framework数据提供程序(ADO.NET)主要包括SQL Server .NET Framework 数据提供程序、OLE DB .NET Framework 数据提供程序、
ODBC .NET Framework 数据提供程序和Oracle .NET Framework 数据提供程序
.NET Framework数据提供程序 |
说明 |
SQL Server .NET Framework 数据提供程序 |
命名空间:System.Data.SqlClient 。 主要用于访问SQL数据库。 |
OLE DB .NET Framework 数据提供程序 |
命名空间: System.Data.OleDb 。 通过 COM Interop 使用本机 OLE DB 启用数据访问,驱动程序有SQLOLEDB、MSDAORA和Microsoft.Jet.OLEDB.4.0 主要用于访问Access数据库,也可以用来访问SQL数据库。 |
ODBC .NET Framework 数据提供程序 |
命名空间:System.Data.Odbc 。 使用本机 ODBC 驱动程序管理器 (DM) 启用数据访问,驱动程序有SQL Server、Microsoft ODBC for Oracle和Microsoft Access 驱动程序 (*.mdb) 主要用于访问Excel数据库。 |
Oracle .NET Framework 数据提供程序 |
命名空间:System.Data.OracleClient 。 主要用于访问Oracle数据库 |
.NET Framework 数据提供程序主要有四个核心对象。
对象 |
说明 |
Connection |
建立与特定数据源的连接。所有 Connection 对象的基类均为DbConnection 类。 |
Command |
对数据源执行命令。公开 Parameters,并且可以通过 Connection 在 Transaction 的范围内执行。所有 Command 对象的基类均为DbCommand 类。 |
DataReader |
从数据源中读取只进且只读的数据流。所有 DataReader 对象的基类均为DbDataReader 类。 |
DataAdapter |
用数据源填充 DataSet 并解析更新。所有 DataAdapter 对象的基类均为DbDataAdapter 类。 |
除上表列出的核心类之外,.NET Framework 数据提供程序还包含下表列出的类。
对象 |
说明 |
Transaction |
使您能够在数据源的事务中登记命令。所有 Transaction 对象的基类均为DbTransaction 类。 |
CommandBuilder |
帮助器对象将自动生成 DataAdapter 的命令属性或将从存储过程派生参数信息并填充 Command 对象的 Parameters 集合。所有 CommandBuilder 对象的基类均为DbCommandBuilder 类。 |
ConnectionStringBuilder |
帮助器对象为创建和管理 Connection 对象所使用的连接字符串的内容提供了一种简单的方法。所有 ConnectionStringBuilder 对象的基类均为DbConnectionStringBuilder 类。 |
参数 |
定义命令和存储过程的输入、输出和返回值参数。所有 Parameter 对象的基类均为DbParameter 类。 |
Exception |
在数据源中遇到错误时返回。对于在客户端遇到的错误,.NET Framework 数据提供程序会引发 .NET Framework 异常。所有 Exception 对象的基类均为DbException 类。 |
Error |
公开数据源返回的警告或错误中的信息。 |
ClientPermission |
为 .NET Framework 数据提供程序代码访问安全属性而提供。所有 ClientPermission 对象的基类均为DBDataPermission 类。 |
二、山寨一个ADO.NET
1、添加一个类库Data。
2、设置类库的程序集名称NetShop.Data。
3、类库Data中添加类Data.cs,代码如下:
namespace NetShop.Data
{
namespace SqlClient
{
public class SqlConnection
{
public string Information = "NetShop.Data.SqlClient.SqlConnection";
}
public class SqlCommand
{
public string Information = "NetShop.Data.SqlClient.SqlCommand";
}
public class SqlDataReader
{
public string Information = "NetShop.Data.SqlClient.SqlDataReader";
}
public class SqlDataAdapter
{
public string Information = "NetShop.Data.SqlClient.SqlDataAdapter";
}
}
namespace OleDb
{
public class OleDbConnection
{
public string Information = "NetShop.Data.OleDb.OleDbConnection";
}
public class OleDbCommand
{
public string Information = "NetShop.Data.OleDb.OleDbCommand";
}
public class OleDbDataReader
{
public string Information = "NetShop.Data.OleDb.OleDbDataReader";
}
public class OleDbDataAdapter
{
public string Information = "NetShop.Data.OleDb.OleDbDataAdapter";
}
}
namespace Odbc
{
public class OdbcConnection
{
public string Information = "NetShop.Data.Odbc.OdbcConnection";
}
public class OdbcCommand
{
public string Information = "NetShop.Data.Odbc.OdbcCommand";
}
public class OdbcDataReader
{
public string Information = "NetShop.Data.Odbc.OdbcDataReader";
}
public class OdbcDataAdapter
{
public string Information = "NetShop.Data.Odbc.OdbcDataAdapter";
}
}
namespace Oracle
{
public class OracleConnection
{
public string Information = "NetShop.Data.Oracle.OracleConnection";
}
public class OracleCommand
{
public string Information = "NetShop.Data.Oracle.OracleCommand";
}
public class OracleDataReader
{
public string Information = "NetShop.Data.Oracle.OracleDataReader";
}
public class OracleDataAdapter
{
public string Information = "NetShop.Data.Oracle.OracleDataAdapter";
}
}
}
4、网站Web添加引用→项目→NetShop.Data。
5、Default.aspx.cs中添加如下代码:
using System;
using NetShop.Data.SqlClient;
using NetShop.Data.OleDb;
using NetShop.Data.Odbc;
using NetShop.Data.Oracle;
public partialclass _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("SQLServer.NET数据提供程序核心类有4个,分别是:</br>");
SQLServer();
Response.Write("OleDb.NET数据提供程序核心类有4个,分别是:</br>");
OleDb();
Response.Write("Odbc.NET数据提供程序核心类有4个,分别是:</br>");
Odbc();
Response.Write("Oracle.NET数据提供程序核心类有4个,分别是:</br>");
Oracle();
}
void SQLServer()
{
SqlConnection conn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
SqlDataReader rdr = new SqlDataReader();
SqlDataAdapter da = new SqlDataAdapter();
Response.Write(conn.Information + "</br>");
Response.Write(cmd.Information + "</br>");
Response.Write(rdr.Information + "</br>");
Response.Write(da.Information + "</br></br>");
}
void OleDb()
{
OleDbConnection conn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
OleDbDataReader rdr = new OleDbDataReader();
OleDbDataAdapter da = new OleDbDataAdapter();
Response.Write(conn.Information + "</br>");
Response.Write(cmd.Information + "</br>");
Response.Write(rdr.Information + "</br>");
Response.Write(da.Information + "</br></br>");
}
void Odbc()
{
OdbcConnection conn = new OdbcConnection();
OdbcCommand cmd = new OdbcCommand();
OdbcDataReader rdr = new OdbcDataReader();
OdbcDataAdapter da = new OdbcDataAdapter();
Response.Write(conn.Information + "</br>");
Response.Write(cmd.Information + "</br>");
Response.Write(rdr.Information + "</br>");
Response.Write(da.Information + "</br></br>");
}
void Oracle()
{
OracleConnection conn = new OracleConnection();
OracleCommand cmd = new OracleCommand();
OracleDataReader rdr = new OracleDataReader();
OracleDataAdapter da = new OracleDataAdapter();
Response.Write(conn.Information + "</br>");
Response.Write(cmd.Information + "</br>");
Response.Write(rdr.Information + "</br>");
Response.Write(da.Information + "</br></br>");
}
}
6、右击Default.aspx,在浏览器中查看运行结果。
【技术要点】
1、为了不与系统冲突,命名空间使用了前缀NetShop而不是System,这个不应该影响说明问题吧。
2、类Data.cs中没有使用任何其它的类,不需要引用任何程序集,也不需要导入命名空间。
参考网址:http://msdn.microsoft.com/zh-cn/library/a6cd7c08(v=vs.80).aspx