A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨礼文 中级黑马   /  2012-4-21 21:30  /  1182 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接  ado.net中的封装 DataSet 强类型 1

封装 (目的是为了使代码更简洁 更容易让人看懂)
class SQLHelper
{
       //ExecuteNonQuery("insert into t(f1,f2) values (@f1,@f2)",p1,p2,p3,p4)
        public static int ExecuteNonQuery(string sql,params SqlParameter[]  parameters )
        {                                       //params SqlParameter[]  parameters  可变参数
            string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            //ConfigurationManager  提供客户端应用程序配置文件的访问
            //ConnectionStrings  获取当前应用程序默认配置文件的数据  ConnStr 名字  
            //ConnectionString   获取或设置连接字符串
            using (SqlConnection conn = new SqlConnection(connStr))  //创建连接
            {
                conn.Open();
                using (SqlCommand cnd = conn.CreateCommand())
                {
                    cnd.CommandText = sql;  //别加引号!!! sql 是传过来的 SqlCommand语句
                    foreach (SqlParameter parameter in parameters) //作用是往SqlCommand语句中添加参数
                    {
                        cnd.Parameters.Add(parameter);
                        // parameter是局部变量 等于传过来的变量 new SqlParameter("Name","tom"), new SqlParameter("Age",30)
                        //cnd.Parameters 这个是集合   cnd.Parameters.Add() 向这个集合里加对象
                        //new SqlParameter("Name","tom") 这个是对象,
                        //这个对象的作用就是,Name 赋值为 tom
                        //也可以这样理解
                        //cnd.Parameters 就是一个组, SqlParameter组员类(里面是对组员的一些要求) new SqlParameter() 找到一个满足要求的人员,
                        //cnd.Parameters.Add(new SqlParameter()) 将组员加入到组里
                      }
                    return cnd.ExecuteNonQuery();
                    //cnd.ExecuteNonQuery(); 非查询,对添加,修改,删除作用 返回受影响的行数 int类型
                }
            }
        }
        public static object ExecuteScalar(string sql , params SqlParameter[] parameters)
        {
            string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connStr))  //创建连接
            {
                conn.Open();
                using (SqlCommand cnd = conn.CreateCommand())
                {
                    cnd.CommandText = sql;  //别加引号!!!
                    foreach (SqlParameter parameter in parameters)
                    {
                        cnd.Parameters.Add(parameter);
                    }
                    return cnd.ExecuteScalar();
                    //执行查询 并返回查询所返回的结果集中第一行第一列 object类型
                }
             }
         }
        //不能用这个方法 因为连接关闭后 SqlDataReader无法使用了
       public static SqlDataReader ExecuteReader(string sql ,params SqlParameter[] parameters)
        //返回值是SqlDataReader类型的
        {
            string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cnd = conn.CreateCommand())
                {
                    cnd.CommandText = sql;
                    foreach(SqlParameter parameter in parameters)
                    {
                        cnd.Parameters.Add(parameter);
                    }
                    return cnd.ExecuteReader();
                }
            }
        }
       public static DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters)
        {
            string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using(SqlCommand cnd = conn.CreateCommand())
                {
                    cnd.CommandText = sql;
                    foreach(SqlParameter parameter in parameters)
                    {
                        cnd.Parameters.Add(parameter);
                    }
                    DataSet dataSet = new DataSet();
                    SqlDataAdapter adapter = new SqlDataAdapter(cnd);
                    adapter.Fill(dataSet);
                    return dataSet.Tables[0];
                }
            }
        }
}

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

2 个回复

正序浏览
学习了谢谢
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马