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())
{
}
}