事务是作为单个逻辑单元执行的一系列操作,它是一个不可分割的工作逻辑单元。它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。 举个例子,我们经常用到的 ATM 存取款机,比如转账的时候,是先减去转出账户的金额,然后再在指定转入账户的金额加上转出的金额。如果刚好这个时候转出的操作已经执行完成,但是由于系统的故障,导致转入的操作失败了。那么怎么办?这就需要用到事务了,只要事务里面有一条命令未成功执行,那么数据就会回滚到事务开始之前的状态。
在ADO.NET 中,可以使用Connection 和Transaction 对象来控制事务。若要执行事务,请执行下列操作:
优点: – 简单性 – 和数据据事务差不多的快 – 独立于数据库,不同数据库的专有代码被隐藏了
缺点: – 事务不能跨越多个数据库连接 – 事务执行在数据库连接层上,所以需要在事务过程中维护一个数据库连接。

SqlDataAdapter对象通过无连接的方式完成数据库和本地DataSet之间的交互。 ADO.NET SqlDataAdapter对象通过SelectCommand、InsertCommand、UpdateCommand和 DeleteCommand属性为后台数据库提供对应的操作命令,并传递需要的参数。一般情况下,只需要提供SELECT语句和连接字符串创建 SqlDataAdapter对象,然后利用SqlCommandBuilder对象生成InsertCommand、UpdateCommand和DeleteCommand属性。
C#// 定义一个SQL查询字符串,用于从wms_material表中选择所有列,其中mlfb列的值包含用户输入的文本(txtSearch.Text)
string sql = "select * from wms_material where mlfb like '%" + txtSearch.Text + "%'";
// 创建一个新的DataSet对象,用于存储从数据库查询返回的数据
DataSet ds = new DataSet();
// 创建一个SqlCommand对象,用于执行上面定义的SQL查询
// 这里假设已经有一个名为connection的数据库连接对象
SqlCommand cmd = new SqlCommand(sql, connection);
// 创建一个SqlDataAdapter对象,用于执行SqlCommand
// SqlDataAdapter能够在DataSet和数据库之间建立桥梁,用于填充DataSet
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// 使用SqlDataAdapter对象的Fill方法,将查询结果填充到DataSet对象ds中
adapter.Fill(ds);
使用Connection对象与数据源建∥.连接后,可以使用Command对象对数据源执行查询、添加、删除利和修收等各种操作,操作实现的方可以是使用SQL语句,也可以是使用存储过程。根据.NET Framework数据提供程序的不同Command对象可以分成4种,分别是SqlCommand、OleDbCommand、OdbcCommand和DracleCommand,在实际的编程过程中应该根据访问的数据源不同,选择相对应的Command对象。
属性
| CommandText | 获取或设置要在数据源中执行的 Transact-SQL 语句、表名或存储过程。 |
| CommandTimeout | 获取或设置在终止尝试执行命令并生成错误之前的等待时间(以秒为单位)。 |
| CommandType | 获取或设置一个值,该值指示解释 CommandText 属性的方式。 |
| Connection | 获取或设置 SqlCommand 的此实例使用的 SqlConnection。 |
| DbConnection | 获取或设置此 DbConnection 使用的 DbCommand。 (继承自 DbCommand) |
| DbParameterCollection | 获取 DbParameter 对象的集合。 (继承自 DbCommand) |
| DbTransaction | 获取或设置将在其中执行此 DbCommand 对象的 DbTransaction。 (继承自 DbCommand) |
| DesignTimeVisible | 获取或设置一个值,该值指示命令对象是否应在 Windows 窗体设计器控件中可见。 |
| Notification | 获取或设置一个指定绑定到此命令的 SqlNotificationRequest 对象的值。 |
| Parameters | 获取 SqlParameterCollection。 |
| Transaction | 获取或设置要在其中执行 SqlTransaction 的 SqlCommand。 |
| UpdatedRowSource | 获取或设置命令结果如何应用于 DataRow Update 方法 DbDataAdapter的用法。 |
方法
Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接。所有Connection对象的基类都是DbConnection类。
以下是几种常见数据库对应的 .NET Framework 数据提供程序中的 Connection 对象:
Connection 对象的使用通常遵循以下步骤:
ConnectionString 属性,用于设置这些信息。Open 方法来建立到数据库的连接。Close 方法来关闭连接。为了更好的资源管理,建议使用 using 语句来确保连接正确关闭。数据源(Data Source)+数据库名称(Initial Catalog)+用户名(User ID)+密码(Password)
SQL Server连接字符串
C#Data Source=.;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;Trusted_Connection=False;