ADO.NET是类框架,它允许访问数据,并且为.NET应用程序提供直接途径获取必要信息。本文中,我介绍了如何使用C#和ADO.NET访问基于SQL-Sever的数据。本文中用到一个用C#语言编写的简单示例。
连接
连接是数据访问的开始之处,并且决定如何连接到数据源。此时需要对属性进行设置,(例如ConnectionString),与数据源建立联系。下面列出了连接的关键属性和方法。
关键属性
- ConnectionString: (读/写)用于打开SQL Sever数据库的字符串。
- ConnectionTimeout:(读)尝试连接的最大时间限制。
- Database: (读)当前已连接(或正在连接)的数据库名字。
- DataSource:(读)需要连接的SQL Sever实例名字。
- ServerVersion:(读)已连接的SQL Sever实例的验证版本字符串。
- State:(读)当前的连接状态。
关键方法
- BeginTransaction:(超载)开始一个数据库事务。
- ChangeDatabase: 为SqlConnection 更改当前数据库。
- Close: 关闭数据库连接。
- CreateCommand: 创建并返回与SqlConnection 关联的SqlCommand 对象。
- Open: 通过恰当设置ConnectionString 属性打开数据库连接。
命令
ADO.NET命令对于存储过程和SQL声明的运行是很重要的。下面给出了命令的关键属性和方法。
关键属性
- CommandText:(读/写)T-SQL声明或存储的过程。
- CommandTimeout:(读/写)命令执行所允许的最大时间限制。
- CommandType:(读/写)解释CommandText属性的指示值。
- Connection:(读/写)SqlCommand 实例所用到的SqlConnection。
- Parameters:(读)SqlParameterCollection。
- Transaction:(读/写)SqlCommand命令所执行的事务。
关键方法
- Cancel:取消执行SqlCommand命令。
- CreateParameter:创建SqlParameter对象的一个新实例。
- ExecuteNonQuery:执行T-SQL 声明并且返回受影响的行数。
- ExecuteReader:(超载)发送CommandText 给连接,并且建立SqlDataReader。
- ExecuteScalar:执行查询,并且返回查询结果集的第一行第一列值。
- ExecuteXmlReader:发送CommandText给连接,并且建立一个 XmlReader 对象。
- Prepare:在SQL Sever实例上创建命令的准备版本。
数据适配器
DataAdapter是一个对象,用于沟通数据源和DataSet对象,所以它可以恢复和更新。
关键属性
- AcceptChangesDuringFill:(读/写)值,此值指示在DataRow上是否调用AcceptChanges的情况,而此时的DataRow已经被添加到DataTable。
- TableMappings:(读)在数据源表和DataTable之间提供主要映射集。
关键方法
- Fill:添加并刷新DataSet中的行,与数据源中使用DataSet名字的行进行匹配;并且创建命名为“Table”的DataTable。
- FillSchema:向指定的DataSet中添加命名为“Table”的DataTable,并且设置大纲与数据源中指定的SchemaType 大纲相匹配。
- GetFillParameters:在执行SQL选择命令时,由用户恢复参数集。
- Update:对于来自名为“Table”的DataTable中的DataSet,为其相应的动作调用相应的命令,如:插入、更新和删除等等。
数据访问基础
在.NET框架内采用ADO.NET进行工作时,需要用到两个System.Data命名空间中的一个:System.Data.SQLClient或者System.Data.OleDB。采用何种命名空间取决于需要访问的数据库。如果访问SQL Sever数据库,则应该使用System.Data.SQLClient命名空间;如果访问其他类型的数据库,则使用System.Data.OleDB命名空间。
代码定义了OleDbConnection、conn的一个实例。在ConnectionString属性中,指定了数据源提供者(Microsoft.JET.OLEDB版本4),以及数据源的位置和名称(Northwind.mdb S Access 数据库)。接下来,创建了Command对象的实例,并且设置其CommandText属性为实际的SQL字符串。然后打开连接,利用命令对象的ExecuteScalar方法返回记录集的第一个值,并且将其显示在消息框中。在try/catch块内部打开连接;如果出现错误,消息框中则出现出错信息。在finally块中,代码释放connection对象。
发表回复