一个连接完成一个事务,可是一个连接中用几个SqlDataReader就报错

liyunhusoso 2013-11-07 10:23:25
一个连接完成一个事务(这句话应该没错吧),可是一个连接中用几个SqlDataReader就报错,这个怎么解决啊!求指教(错误:已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。)
public static SqlDataReader ExecuteReader(string strSQL)
{
SqlCommand cmd = new SqlCommand(strSQL, connection);
try
{
//判断是否打开数据库连接,如果没有打开就打开数据库连接
GetCnn();
if (thisTran != null)
cmd.Transaction = thisTran;
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return myReader;
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}

}
...全文
172 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ahoo 2013-11-07
  • 打赏
  • 举报
回复
1.你查询方法 用事物做什么? 2.SqlDataReader 是连接式的,会占用一个连接,你这边没有释放它 别人就没办法用。就像你蹲了个坑一样,这坑被你占了 别人就只能等,就算你是占着茅坑不拉屎 也得等。 3.好好理解一下为什么要用事物
_萧萧 2013-11-07
  • 打赏
  • 举报
回复
一个连接只能被一个SqlDataReader使用,使用完用SqlDataReader.Close()关闭它
liyunhusoso 2013-11-07
  • 打赏
  • 举报
回复
如果一个事务中要用到几次SqlDataReader怎么办?只能用别的东西了 不能用SqlDataReader?
liyunhusoso 2013-11-07
  • 打赏
  • 举报
回复
如果一个事务中要用到几次SqlDataReader怎么办?真能用别的东西了 不能用SqlDataReader?
-烟花雨季 2013-11-07
  • 打赏
  • 举报
回复
一个数据库连接只能读一次,不能用几个SqlDataReader
liyunhusoso 2013-11-07
  • 打赏
  • 举报
回复
各位大师,帮帮忙啊!请指点!
liyunhusoso 2013-11-07
  • 打赏
  • 举报
回复
数据库是sql 2000

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧