0

我正在用 C# 开发一个带有 SQL Server 2005 后端的桌面应用程序。

我想将行插入两个表中,table1一行将被保存,一次保存table2超过 100 行。

我希望在保存过程中,如果电源出现故障或由于任何原因程序终止,那么不完整的事务不应该保存在数据库中;但如果事务成功完成,则应将其保存到数据库中。

我正在使用Connection.BeginTransaction()方法

 clsData dSave = new clsData();
 dSave.Open(); // 
 System.Data.SqlClient.SqlTransaction tr = dSave.Connection.BeginTransaction();

clsData是一个类,其中声明了一些变量,如SqlConnection, SqlCommand, ,在此类中声明了SqlAdapter一个被调用的 var,并在此类 中声明了一个打开连接的方法。ConnectionOpen()

困难在于,在执行了 10-20 条命令后,tr.Connection突然变为空,因为我的连接仍然打开。

任何人都可以帮助我解决这个问题。

4

1 回答 1

3
  • 使用存储过程调用
  • 使用 XML 或表值参数传入数据
  • 在 SQL Server 中管理事务

不要在客户端事务中对数据库服务器进行 100 多次调用

于 2011-08-23T07:18:33.043 回答