超时时间已到。在操作完成之前超时时间已过或服务器未响应。

wsmzhyangzi 2012-01-09 01:19:11
错误信息如 文章标题 所示。

是在做一个分页查询时出的这个错误,错误很诡异,具体步骤如下:

string strWhere = "nclassName like '" + musicName + "' or musicName like '%"+musicName+"%'";
protected void Page_Load(object sender, EventArgs e)
{
int recordCount = 0;
//传入假参数,为了取得总数量,因为总数量在页面初始化时就要赋值
this.GridView1.DataSource = MusicList_BLL.SelectDataTableByPage(_tblName, descid, _fldName, strWhere, 1,1,1, ref recordCount);
this.GridView1.DataBind();
AspNetPager1.RecordCount = recordCount;
}

//再页面载入时\点击页数时会触发这事件,
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
int recordCount = 0;
this.GridView1.DataSource = MusicList_BLL.SelectDataTableByPage(_tblName, descid, _fldName, strWhere, 1, AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex, ref recordCount);
this.GridView1.DataBind();
}

为了让问题看起来方便,我就简化了传值赋值逻辑判断这些代码,SelectDataTableByPage方法是对的,参数descid,_fldName,这些值都是没有问题。在我第一次加载这个页面,比如搜索 张学友 的时候,会正常显示PageSize条记录,但当我点击下一页或者2,3,4,5.....页时,就报出超时信息。

我设置断点跟踪了,两次走的步骤完全一样,唯一不同的就是第一次传入参数CurrentPageIndex为1,第二次为用户自己点的页面数,既然第一次正常显示了,代表传参及数据库查询都不存在问题,但为什么第二次传入CurrentPageIndex就报超时呢?当然所有参数都是正常传入。

在网上搜索了相关问题的解决办法
web.config 已经设置,跟它无关,如果有关,第一次查询也不可能成功。<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="1024000" executionTimeout="900" />

设置sqlcommond的timeout。这个也设置了,没效果(实质跟web.config配置效果一样)
设置sqlconnection 的 Connect Timeout。这个也设置了,依旧报错。

有的人说查询复杂,给相应字段设置索引,这个也设置了,没效果。

请问大侠们这大概什么原因啊, 实在是想不明白。
...全文
478 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
laowang134 2012-01-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wsmzhyangzi 的回复:]
引用 9 楼 laowang134 的回复:

引用 8 楼 laowang134 的回复:
找找你的放回中有没有用了SqlDataReader的。看有没有关闭。

方法中。。。


用的SqlDataAdapter ,已经关闭。二楼有我贴的代码。
[/Quote]
前台绑定的时候都是只用的字段,没有调用方法?
wsmzhyangzi 2012-01-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 laowang134 的回复:]

引用 8 楼 laowang134 的回复:
找找你的放回中有没有用了SqlDataReader的。看有没有关闭。

方法中。。。
[/Quote]

用的SqlDataAdapter ,已经关闭。二楼有我贴的代码。
laowang134 2012-01-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 laowang134 的回复:]
找找你的放回中有没有用了SqlDataReader的。看有没有关闭。
[/Quote]
方法中。。。
laowang134 2012-01-09
  • 打赏
  • 举报
回复
找找你的放回中有没有用了SqlDataReader的。看有没有关闭。
wsmzhyangzi 2012-01-09
  • 打赏
  • 举报
回复
我前后都不模糊,也会这样的错误。
wsmzhyangzi 2012-01-09
  • 打赏
  • 举报
回复
全部搜索,必然是前后都模糊。再说即使只要一个模糊,也就少了即使条数据而已。
酷儿 2012-01-09
  • 打赏
  • 举报
回复
把你的sql改一下吧 特别是模糊查询 如果是以前面为主的就去掉后面的%
wsmzhyangzi 2012-01-09
  • 打赏
  • 举报
回复
不应该,才1000条数据而已。怎么查也不会超时
qq346127416 2012-01-09
  • 打赏
  • 举报
回复
数据量太大了 在规定时间内 没有查询完成
wsmzhyangzi 2012-01-09
  • 打赏
  • 举报
回复
有关闭
SqlCommand cmd = new SqlCommand();
//cmd.CommandTimeout = 1800;
SqlConnection conn = new SqlConnection(connectionString);
DataTable dt = new DataTable();

try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dt);
conn.Close();
cmd.Parameters.Clear();
return dt;
}
catch
{
conn.Close();
throw;
}
酷儿 2012-01-09
  • 打赏
  • 举报
回复
这个一般都是在连接数据时造成的 你连接之后有关闭吗?

62,046

社区成员

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

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

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

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