日期:2014-05-16  浏览次数:20389 次

Dataset和SqlDataReader
下面是我在公共类里写的两个方法,ajax频繁调用的时候用dataset就不会有问题,但是sqldatareader就会出现超时问题,一定要把网页重新发布一次,请教一下为什么会这样?
public static DataSet dataSet(string sql)
 {
        DataSet ds = new DataSet();
        SqlConnection cn = new SqlConnection("Server=(local);UID=**;PWD=**;DATABASE=**");
        cn.Open();
        SqlDataAdapter da = new SqlDataAdapter(sql, cn);
        da.Fill(ds);
        cn.Close();
        return ds;
 }
 public static SqlDataReader dataReader(string sql)
 {
        SqlConnection cn = new SqlConnection("Server=(local);UID=**;PWD=**;DATABASE=**");
        cn.Open();
        SqlCommand cm = new SqlCommand(sql, cn);
        SqlDataReader dr = cm.ExecuteReader();
        cn.Close();
        return dr;
 }

------解决方案--------------------
SqlDataReader dr = cm.ExecuteReader();

DataReader用完是要关闭的
------解决方案--------------------
sqldatareader 使用需关闭 如果不关闭他会占用链接数不会释放 。如果频繁请求导致超过了允许最大连接数 那么就会报这样的错误