ADO.NET对象模型中有5个主要的数据库访问和操作对象,分别是Connection、Command、DataReader、DataAdapter和DataSet对象。
ADO.NET对象模型中有5个主要的数据库访问和操作对象,分别是Connection、Command、DataReader、DataAdapter和DataSet对象。
其中,Connection对象主要负责连接数据库,Command对象主要负责生成并执行SQL语句, DataReader对象主要负责读取数据库中的数据,DataAdapter对象主要负责在Command对象执行完SQL语句后生成并填充 DataSet和DataTable,而DataSet对象主要负责存取和更新数据。
ADO.NET主要提供了两种数据提供者(Data Provider),分别是SQL Server.NET Provider和OLE DB.NET Provider。
SQL Server.NET Framework数据提供程序使用它自身的协议与SQL Server数据库服务器通信,而OLE DB.NET Framework则通过OLE DB服务组件(提供连接池和事务服务)和数据源的OLE DB提供程序与OLE DB数据源进行通信。
它们两者内部均有Connection、 Command、DataReader和DataAdapter 4类对象。对于不同的数据提供者,上述4种对象的类名是不同的,而它们连接访问数据库的过程却大同小异。这是因为它们以接口的形式,封装了不同数据库的连接访问动作。正是由于这两种数据提供者使用数据库访问驱动程序屏蔽了底层数据库的差异,所以从用户的角度来看,它们的差别仅仅体现在命名上。
下表描述了这两类数据提供者下的对象命名。
ADO.NET对象描述
对 象 名 |
OLE DB数据提供者的类名 |
SQL Server数据提供者类名 |
Connection对象 |
OleDbConnection |
SqlConnection |
Command对象 |
OleDbCommand |
SqlCommand |
DataReader对象 |
OleDbDataReader |
SqlDataReader |
DataAdapter对象 |
OleDbDataAdapter |
SqlDataAdapter |
Connectionion对象主要用于连接数据库,它的常用的属性如下。
Ü ConnectionString属性:该属性用来获取或设置用于打开 SQL Server 数据库的字符串。
Ü ConnectionTimeout属性:该属性用来获取在尝试建立连接时终止尝试,并生成错误之前所等待的时间。
Ü DataBase属性:该属性用来获取当前数据库或连接打开后要使用的数据库的名称。
Ü DataSource属性:该属性用来设置要连接的数据源实例名称,例如SQL Server的Local服务实例。
Ü State属性该属性:是一个枚举类型的值,用来表示同当前数据库的连接状态。该属性的取值情况和含义如表所示。
表Provider值描述
属 性 值 |
对 应 含 义 |
Broken |
该连接对象与数据源的连接处于中断状态。只有当连接打开后再与数据库失去连接才会导致这种情况。可以关闭处于这种状态的连接,然后重新打开 |
Closed |
该连接对象正在与数据源连接 |
Connecting |
该连接对象正在与数据源连接 |
Executing |
该连接对象正在执行数据库操作的命令 |
Fetching |
该连接对象正在检索数据 |
Open |
该连接处于打开状态 |
State属性一般是只读不写的,以下代码演示了使用State属性管理控制数据连接的方式。
//设置连接对象
SqlConnection conn;
//如果是空闲状态,连接数据库
if ( conn.State == ConnectionState.Closed)
{
conn.Open();
}
//访问数据库的代码
…
//最后关闭连接
if(conn.State == ConnectionState.Open )
{
conn.Close();
}
在ConnectionString连接字符串里,一般需要指定将要连接数据源的种类、数据库服务器的名称、数据库名称、登录用户名、密码、等待连接时间、安全验证设置等参数信息,这些参数之间用分号隔开。下面将详细描述这些常用参数的使用方法。