如何在 SQL Server 2005 中管理多个事务
我正在用 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
,在该类中声明了一个名为 Connection
的变量,并声明了一个方法 Open()
在打开连接的此类中声明。
困难在于,在大约 10-20 个命令之后,tr.Connection
突然变为 null,而我的连接仍然处于打开状态。
任何人都可以帮助我解决这个问题。
I'm developing a desktop application in C# with a SQL Server 2005 backend.
I want to insert rows into two tables, in table1
one row will be saved and in table2
more than 100 rows will save at a time.
I want that while saving is going on and between it if power fails or due to any reason program terminates then that incomplete transaction should not saved in the database; but if transaction completes successfully, then it should be saved to the database.
I'm using Connection.BeginTransaction()
methods
clsData dSave = new clsData();
dSave.Open(); //
System.Data.SqlClient.SqlTransaction tr = dSave.Connection.BeginTransaction();
clsData
is a class in which some variables are declared like SqlConnection
, SqlCommand
, SqlAdapter
, a var called Connection
is declared in this class and a method Open()
is declared in this class which opens connection.
Difficulty is that after some 10-20 commands, tr.Connection
suddenly becomes null, where as my connnection is still open.
Anybody can help me about this problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要在客户端事务中对数据库服务器进行 100 多次调用
Don't make 100+ call to the database server in a client side transaction