class A
{
  public SqlDataReader GetDataReader()
  {
//.......
return dr;
  }
}
class B
{
  A a = new A();
  DataList.DataSource=a.GetDataReader();
  DataList.DataBind();
}
这样,数据库连接是断开了还是没有断开呀

解决方案 »

  1.   

    DataReader dr =   a.GetDataReader();
    DataList.DataSource=dr;
      DataList.DataBind();
    dr.close();
      

  2.   

    当然要关闭了
    class A
    {
      public SqlDataReader GetDataReader()
      {
    //.......
    return dr;
      }
       public void Close()
    {
        dr.close();
    }
    }
    class B
    {
      A a = new A();
      DataList.DataSource=a.GetDataReader();
      DataList.DataBind();
      a.Close();
    }
      

  3.   

    可以在返回 SqlDataReader 的时候设定读取完了自动关闭连接:......
    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    return reader;
      

  4.   

    dataAdapter就可以在数据库连接没有打开的时候用,它的fill方法就会自动打开数据库链接,并且自动关闭其打开的连接
    dataReader的话用inelm的方法不错,另外commandBehavior.SingleRow在检索单行记录时也很好用
      

  5.   

    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    return reader;
       
      CommandBehavior.CloseConnection 功能就是读取完毕后自动关闭.