怎么解决别人狂刷新页面导致数据库访问错误的问题?

RealDay 2010-11-11 10:01:44
怎么解决别人狂刷新页面导致数据库访问错误的问题?

应该是 这样 然后会出现
System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.

我不知道怎么操作缓存。 整页缓存的话 不行 因为有部分动态交换 比如页面还有登陆的就不行。
不好意思
现在只有30分 了、
希望大家帮帮忙
...全文
160 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
RealDay 2010-11-12
  • 打赏
  • 举报
回复
UP ``
RealDay 2010-11-11
  • 打赏
  • 举报
回复
System.Threading.ThreadAbortException: Thread was being aborted

还会有这个异常 哎
newdigitime 2010-11-11
  • 打赏
  • 举报
回复
问题在于你的代码在数据读取完成后,没有关闭连接.

否则狂刷只会导致连接池排队,或者数据库服务不可访问.
sincerely83 2010-11-11
  • 打赏
  • 举报
回复
没关闭conn,鉴定完毕
Teng_s2000 2010-11-11
  • 打赏
  • 举报
回复
数据库缓存

还有使用Reader时用完要记得Close
Arthur080319 2010-11-11
  • 打赏
  • 举报
回复
System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.

-------------------------------
错误很清楚了,dataReader没有关闭
sunny_yu 2010-11-11
  • 打赏
  • 举报
回复
可以设置页面刷新时间,给个提示,多长时间内不能刷新。。
sunny_yu 2010-11-11
  • 打赏
  • 举报
回复
数据库库链接后try,finally都要关掉,try{close()}catch{} finally{close();}。
majic2008 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuhan_dotnet 的回复:]
在Page_Load事件里加if(!Page.IsPostBack)

关闭的代码

C# code

try
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill……
[/Quote]

!ispostback 和finally
wuhan_dotnet 2010-11-11
  • 打赏
  • 举报
回复
在Page_Load事件里加if(!Page.IsPostBack)

关闭的代码

try
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
Close();
return dataset;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
}
finnaly
{
Close();
}

RealDay 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hookyzlr 的回复:]
这个不是缓存能解决的,而是你数据库操作问题,检查下你每次操作完数据库是否将数据连接关闭?
[/Quote]

我用的基本都是这个
try
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
Close();
return dataset;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
}

hookyzlr 2010-11-11
  • 打赏
  • 举报
回复
这个不是缓存能解决的,而是你数据库操作问题,检查下你每次操作完数据库是否将数据连接关闭?

62,272

社区成员

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

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

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

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