使用ADO.net,如果我填充数据适配器而不隐式地执行BeginTransaction,是否会发生“事务”?如果不是,那么默认的隔离级别是什么?ADO.NET事务
0
A
回答
1
DataAdapter没有隐含事务。
1
要在您的数据适配器上运行事务,只需使用TransactionScope。
using (var ts = new TransactionScope())
{
// do your data adapter related code
// ...
ts.Complete();
}
当使用TransactionScope时,您也可以指定IsolationLevel(例如Serializable)。 TransactionScope上的默认隔离级别是Serializable。
0
您将需要显式创建一个事务。与TransactionScope一起,您可以使用SqlTransaction。
例如:
var connString = "Data Source=(local);Integrated security=SSPI; Initial Catalog=Northwind";
var sql = "SELECT * FROM Orders";
using (var conn = new SqlConnection(connString))
{
conn.Open();
var da = new SqlDataAdapter(sql, conn);
var ds = new DataSet();
// load data from the data source into the DataSet
da.Fill(ds, "Orders");
// start the transaction
SqlTransaction tran = conn.BeginTransaction();
// associate transaction with the data adapter command objects
da.DeleteCommand.Transaction = tran;
da.InsertCommand.Transaction = tran;
da.UpdateCommand.Transaction = tran;
// modify the data in the DataSet
// submit changes, commit or rollback, and close the connection
try
{
da.Update(ds, "Orders");
// commit if successful
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
}
}
相关问题
- 1. ADO.NET事务和SQL Server 2008事务
- 2. ADO.NET中的嵌套事务
- 3. ADO.Net事务不起作用
- 4. ADO.NET 2.0之前的分布式事务
- 5. 在ADO.NET事务中使用using()块
- 6. ADO.NET:你需要回滚事务吗?
- 7. 在TransactionScope中使用ADO.Net事务?
- 8. 使用ADO.net中的事务SQL
- 9. Ado.net数据服务
- 10. ADO.NET数据服务
- 11. ADO.NET数据服务
- 12. LINQ-SQL&ADO.NET - 如何使批量事务完全异步?
- 13. ADO.NET中写入的db事务何时实际开始?
- 14. C#通过ADO.NET失败的Oracle和SQL Server事务
- 15. 在单个ado.net事务中执行多个语句/ sqlco命令
- 16. MSDTC问题与ADO.NET实体框架中的事务
- 17. 在Ado.Net更新winth事务“并发冲突”
- 18. 做NHibernate的事务减慢其他ADO.NET连接?
- 19. 为什么客户端启动的Ado.Net事务不允许...?
- 20. 等待ADO.NET或TSQL中的事务复制
- 21. ADO.NET SQL事务 - 只有1个调用数据库?
- 22. ADO.NET重试一个sql连接内的事务
- 23. 同步服务Ado.net SyncSchema
- 24. ADO.net数据服务 - 查询
- 25. 部署ADO.NET数据服务
- 26. DBServerSyncProvider SelectClientIdCommand同步服务Ado.Net
- 27. ADO.Net数据服务更新
- 28. ADO.NET服务更新错误
- 29. ado.net数据服务性能
- 30. RIA服务与ADO.NET数据服务