今天老师复习了ADO ,因为代码的重复使用问题,所以老师就让我们写了sqlhelper类 这是我写的sqlhelper

public class SqlHelper
    {
        string constr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
        public int ExecuteNonQuery( string commandtext,params SqlParameter[] prms) {
            using (SqlConnection conn = new SqlConnection(constr)) {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(commandtext,conn)){
                    if (prms != null) {
                        cmd.Parameters.AddRange(prms);
                    }
                    int r = cmd.ExecuteNonQuery();
                    return r;
                }
            }
        }
        public object ExecuteScalar(string commandtext,params SqlParameter[] prms)
        {
            using (SqlConnection conn = new SqlConnection(constr)) {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(commandtext, conn)) {
                    if (prms != null) {
                        cmd.Parameters.AddRange(prms);
                    }
                    object obj = cmd.ExecuteScalar();
                    return obj;
                }
            }
        }
        public SqlDataReader ExecuteReader(string commandtext, params SqlParameter[] prms) {
            SqlConnection conn = new SqlConnection(constr); //此处不能使用using如果使用的话 内边就调用不到连接对象了
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(commandtext, conn)) {
                    if (prms != null) {
                        cmd.Parameters.AddRange(prms);
                    }
                    SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); //当你关闭reader的时候 SqlConnection也就关闭了
                    return reader;
                }
           
        }
        public DataTable datatable(string commandtext) {

            SqlDataAdapter adapter = new SqlDataAdapter(commandtext, constr);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            return dt;
        }       
     }