注意即使关闭数据库连接,特别当你字层之间传递SqlDataReader的时候,要及时关闭SqlDataReader,而且在打开时要这么写: SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
注意里面的参数

解决方案 »

  1.   

    就只有ExecuteReader是需要这样做的吗?
      

  2.   

    连接池设大一些,如:"server='127.0.0.1'; user id='sa'; password=''; min pool size=1;max pool size=1000;Database='northwind'"
      

  3.   

    换个方法 
    string sno="select mp3Special.* from mp3Special ; SqlCommand mycom=new SqlCommand(sno,myconn);
    SqlDataAdapter DataAdapter=new SqlDataAdapter(); DataAdapter.SelectCommand=mycom;
    DataAdapter.Fill(myds,"da"); if(myds.Tables["da"].Rows.Count >0)
    {
    mydr=myds.Tables["da"].Rows[0];
    txt_zj.Text=mydr["Special_Name"].ToString() ;
            
    }
    myconn.Close();
      

  4.   

    普通大小应该已经够用了,只要程序写的合理
    注意及时关闭数据库连接,每次使用SqlDataReader以后,必须关闭
    这个是最常出问题的地方
      

  5.   

    大连接池不是解决问题得好办法,最好用完了就执行sqlConn.Close();
      

  6.   

    注意一下两点基本可以解决问题:
    1、打开的Connection一定要关闭。
    2、如果你在debug的时候请把SQL debug关闭!