The example in this paper describes the method of SqlHelper encapsulation SqlDataReader in C #. Share to everyone for your reference. Specific as follows: 
 
 
<summary>///Execute SQL statement returns a datareader///when returning DataReader, note:///1.Connection cannot be closed//2.DataReader cannot be closed///3. The Command object executes ExecuteReader () and needs to pass a parameter commandbehavior.closeconnection///</summary>///<param name= "SQL" ></param>///<param name= "PMS" ></param>///<returns></returns>public Static SqlDataReader ExecuteReader (String sql, params sqlparameter[] pms) {SqlConnection con = new SqlConnection (CONSTR); using ( SqlCommand cmd = new SqlCommand (sql, con)) {  if (PMS! = null)  {   cmd. Parameters.addrange (PMS);  }  Con. Open ();  When calling the ExecuteReader () method, if a commandbehavior.closeconnection parameter is passed,  //It means that in the future when the user closes reader, The system will automatically turn off the connection as well.  SqlDataReader reader = cmd. ExecuteReader (commandbehavior.closeconnection);  return reader; }} 
 
 
I hope this article is helpful to everyone's C # programming.