c# – 将SqlTransaction与SqlDataReader一起使用
发布时间:2020-12-15 22:15:57 所属栏目:百科 来源:网络整理
导读:有很多人在网上谈论它,但这似乎不起作用.这是我得到的例外: This SqlTransaction has completed; it is no longer usable. 这是代码 using (SqlConnection locationConnection = new SqlConnection(connectionString)) { locationConnection.Open(); SqlTra
有很多人在网上谈论它,但这似乎不起作用.这是我得到的例外:
This SqlTransaction has completed; it is no longer usable. 这是代码 using (SqlConnection locationConnection = new SqlConnection(connectionString)) { locationConnection.Open(); SqlTransaction transaction = locationConnection.BeginTransaction(); SqlCommand cmd = new SqlCommand(" Select stuff from table A Insert stuff into table B Delete stuff from table A",locationConnection,transaction); using(SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { //Doesn't matter } } //Exception happens here transaction.Commit(); } 任何人都可以阐明为什么会这样吗?如果我在SqlDataReader的范围内移动提交,我会得到一个例外,即datareader需要先关闭. 编辑:我已经回答了我的问题,并会在我被允许的情况下尝试记住接受它. 解决方法
问题是我得到了一个带有DELETE语句的SqlException(外键问题).这是关闭sqlconnection并结束事务,但它没有在我的代码中抛出异常,因为SELECT语句工作正常.我已经解决了Sql问题,代码工作正常.如果有其他人遇到这个问题,他们应该能够以与我相同的方式做到这一点.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |