日期:2014-05-17  浏览次数:20609 次

asp.net结束当前查询操作
页面上有两个按钮“查询”和“返回主页”
当点击查询的时候,有时候数据量很大,浏览器有个符号一直在转。这时候等得不耐烦了。就点击了“返回主页”
(返回主页按钮下就一个页面的重定向),有时候再鬼火关了浏览器,但是这时候就会出现“登录失败”!是不是刚刚的那个查询操作还在执行啊?要咋个解决啊?

------解决方案--------------------
把session模式设置为readyonly试试
------解决方案--------------------
那就是你数据库连接没有关闭
------解决方案--------------------
采用断开式连接,不要用datareader一起连着读取大数据!
大数据量尽量精写sql ,分页处理
------解决方案--------------------
你不会用了静态的 conn 吧。

任何一个访问都要使用那个 conn。

然后你查询的时候,挂掉了,conn一直处于未关闭状态,然后其他任何访问都报错。

重启IIS吧。

然后就是改代码。


------解决方案--------------------
IIS假死了吧~~~~~~~~~~~~~~无响应的话
------解决方案--------------------
先优化你的sql
------解决方案--------------------
查询太多的数据当然用分页查询了,每次数据库连接完了之后都要关闭,不然会很卡
------解决方案--------------------
同问,求大神指导
------解决方案--------------------
在你创建完connection对象的时候判断以下连接状态是否关闭

if(conn.State == ConnectionState.Open)
{
   conn.Close();
}
……
你写一个方法吧 处理没关闭的连接对象,返回一个打开的连接对象,最后用完关闭就好了,
即使没关闭在你的方法里处理没关闭的对象,再打开就好了

------解决方案--------------------

------解决方案--------------------
会不会是数据库链接没关掉?
------解决方案--------------------
有可能是假死
------解决方案--------------------
引用:
先优化你的sql

这个是一切查询的前提。。
------解决方案--------------------
引用:
在你创建完connection对象的时候判断以下连接状态是否关闭

if(conn.State == ConnectionState.Open)
{
   conn.Close();
}
……
你写一个方法吧 处理没关闭的连接对象,返回一个打开的连接对象,最后用完关闭就好了,
即使没关闭在你的方法里处理没关闭的对象,再打开就好了
0.0
------解决方案--------------------
改成我给你的示范代码吧。。。这么好的自动回收语法竟然不用,就一定要
try...catch(Excetpiton ex)吗?
要先捕捉也应该是Cath(SqlException ex)..


public static SqlConnection GetSqlConnection(string connectionString)
{
            return new SqlConnection(connectionString);
}
public static int RunProcstr(string procName, params SqlParameter[] prams)
{
   using (SqlConnection connection = GetSqlConnection())
    {

    }
}