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问题,代码工作正常.如果有其他人遇到这个问题,他们应该能够以与我相同的方式做到这一点.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
