接 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]; } } } } |