你好
如何使用带有类型化数据集的事务?假设我有一个记录表和记录详细信息表,我将在记录表中保存一个,并在记录详细信息表中保存所有详细信息. 我该怎么用?我发现事务可以用于非类型化数据集,但我没有看到它与类型化数据集.谁能告诉我应该怎么办?凯文
CodeProject上有一个 nice article(和代码),关于如何扩展类型化数据集以启用事务,而不会在使用TransactionScope时将它们提升为分布式事务.简介:使用事务范围和在partial类上添加的方法来修改底层SqlCommand对象以参与同一事务.
using (SqlTransaction transaction = connection.BeginTransaction()) { // These methods will update all relevant command objects’ transaction property adapter1.EnlistTransaction(transaction); adapter2.EnlistTransaction(transaction); adapter1.Update(table1); adapter2.Update(table2); transaction.Commit(); }
来自参考的适配器的代码示例:
public partial class [TableAdapterName] { public void EnlistTransaction(System.Data.SqlClient.SqlTransaction transaction) { System.Data.SqlClient.SqlTransaction _transaction; if (this._transaction != null) { throw new System.InvalidOperationException ("This adapter has already been enlisted in a transaction"); } else { this._transaction = transaction; Adapter.UpdateCommand.Transaction = _transaction; Adapter.InsertCommand.Transaction = _transaction; Adapter.DeleteCommand.Transaction = _transaction; } } }
查看更多关于如何在C#中使用带有类型化数据集的事务?的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did69266