我写了个方法!返回SqlDataReader 但方法中不知怎样关闭数据连接流!谢谢
public   SqlDataReader   getBestQuickNews() 
 		{       
 			con=DB.Connection(); 
 			con.Open(); 
 			SqlCommand   cmd=new   SqlCommand( "select   top   6   *   from   hos_News ",con); 
 			SqlDataReader   sdr=cmd.ExecuteReader(); 
 			return   sdr; 
                                                                                     //sdr.Close();--------是这样写吗? 
 			//con.Close();-------如果关闭程序报数据库连接以关闭的错误,不关太占用资源 
 		}   
 我是菜鸟,请高人指教!
------解决方案--------------------public SqlDataReader getBestQuickNews() 
 { 
 con=DB.Connection(); 
 con.Open(); 
 using(SqlCommand cmd=new SqlCommand( "select top 6 * from hos_News ",con)) 
 { 
 using(SqlDataReader sdr=cmd.ExecuteReader()) 
 { 
 return sdr; 
 } 
 } 
 }   
 去看看using的用法
------解决方案--------------------SqlDataReader sdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);   
 这样也可以 
 当你关闭sdr时,会自动关闭con
------解决方案--------------------这是个顾头不顾腚的程序。既然返回DataReader,还怎么关闭数据库联接?一个完整的程序结构应该这样:   
 public List <QuickNewType>  getBestQuickNews() 
 { 
   using(DBConnection con=DB.Connection()) 
   { 
      con.Open(); 
      SqlCommand cmd=new SqlCommand( "select top 6 * from hos_News ",con); 
      SqlDataReader sdr=cmd.ExecuteReader(); 
      List <QuickNewType>  result=new List <QuickNewType> (); 
      while(sddr.Read()) 
      { 
        QickNewType one=new QuickNewType(); 
        //读取sdr,将字段值写入one的相应属性 
        result.Add(one); 
      } 
      return result; 
   } 
 };