SqlConnection cn=new SqlConnection(SQL);
try
{
cn.Open();
SqlCommand cm=new SqlCommand(SQL,cn);
SqlDataReader dr=cm.ExecuteReader();
}
catch
{
//异常处理
}
finally
{
cn.Close();
}

解决方案 »

  1.   

    一般你执行完操作后就释放一下就可以了。。>>为什么把这段代码执行到一定数量时系统就会象死机一样那你得检查你的程序是否一直在进行大量的操作了。
      

  2.   

    try
    {
        cn.Open();
        ...
        //use "using" and the datareader will be closed automatically
        using( SqlDataReader dr= ExcuteReader(...) )
        {
            while( dr.Read() )
            {
                 //do something
                 string str = dr.GetString(0);
            }
        }
    }
    catch(Exception ex)
    {
    //catch exception
    }
    finally
    {
    cn.Close();
    }
      

  3.   

    回复人: cnhgj(戏子)(黄某人养不成沙皮狗) ( ) 信誉:100  2004-11-07 01:43:00  得分: 0  
     
     
       一般你执行完操作后就释放一下就可以了。。>>为什么把这段代码执行到一定数量时系统就会象死机一样那你得检查你的程序是否一直在进行大量的操作了。
      
     
    只有你的回复有点接近我的意思,楼上另几位都会错我意思啦,我并不是问执行不了的问题,所以不需要异常来结束吧。上面我只是把执行的主要流程写了,现在的问题是程序执行是很正常的,并不是执行不了,而且在结尾大家应当看到了每个申明过的变量都释放了。问题是出在:目前公司网站访问量在1000人在线,每当一定时间(不确定要多久),系统就会对点击的执行页面没反应了,要重起IIS才行。就象大家说的假死一样吧。所以,我怀疑是不是数据库的连接语句是不是还有没释放的地方。希望大家能给分析一下到底是怎么回事
      

  4.   

    你最好跟踪一下你的SQL SERVER。。看是否执行了什么事务还有看看进程信息里有哪些。。我想你应该是不停的对数据库进行操作
      

  5.   

    搂住可以不可以优化你的sql,要不用村出过程式一下,我觉得你的访问量很大。。不合适用
    SqlDataReader 你用 SqlDataAdapter
      

  6.   

    回复人: jinbingg(bing) ( ) 信誉:100  2004-11-07 08:52:00  得分: 0  
     
     
       搂住可以不可以优化你的sql,要不用村出过程式一下,我觉得你的访问量很大。。不合适用
    SqlDataReader 你用 SqlDataAdapter
    请教:SqlDataReader 和 SqlDataAdapter在访问量上有什么区别吗?这和假死有关系吗?
    现在搞不清楚什么原因引起假死,感觉是某个值累积到一定程度后系统就假死了。只能在IIS中把回收进程的时间调小来解决,但这样调小回收进程时间对统计不利。大家就没碰到这种现象吗?我们用的是win2003系统。在2000下不知情况如何,又不能换系统。有人说是win2003系统的JetData接口有BUG,但也没看到微软给2003提供sp1包
      
     
      

  7.   

    2003的服务器下,每到一定时间后IIS就不响应,表现为:是点连接后没响应,CPU一点动静都没有,并没有100%很忙,CPU是很闲的死机。系统一切正常。
    我只能在IIS死机时重起IIS就行了,但不能天天去重起IIS吧。不知到底是什么原因