查询数据时请继续

时间:2014-04-22 08:28:07

标签: c# sql-server transactions

我正在使用这样的源代码:

Database db1 = new Database(); //init 1 db connection
db1.BeginTransaction();

//this function used to check exist customer
//in this function, I also use Database db2 = new Database(); db2.Close();
CheckExistCustomer(); 
InsertCustomer(db1, strInsert); //this function worked correct, use db1

if(iErrorCode == ErrorStatus.SUCCESSED)
   db1.CommitTransaction(); 
else db1.RollbackTransaction();

如您所见,我有2个数据库连接。我可以用它们吗?当db2.Close()时,它不会影响到当前的db1,对吗?我应该只使用1分贝连接(db1)吗?

当我运行CheckExistCustomer()时,程序将挂起。我不知道为什么。任何线索?

请告知。

我很感激你的帮助。

1 个答案:

答案 0 :(得分:0)

您正在使用此代码进行事务管理。在Transaction中你正在对两个DB进行操作,这叫做分布式事务,我猜BeginTransaction()方法不支持Distributed Transaction,请使用TransactionScope类

TransactionScope: Avoiding Distributed Transactions