我正在使用这样的源代码:
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()时,程序将挂起。我不知道为什么。任何线索?
请告知。
我很感激你的帮助。
答案 0 :(得分:0)
您正在使用此代码进行事务管理。在Transaction中你正在对两个DB进行操作,这叫做分布式事务,我猜BeginTransaction()方法不支持Distributed Transaction,请使用TransactionScope类