黑马程序员技术交流社区
标题: ado.net中的封装 DataSet 强类型 2 [打印本页]
作者: 杨礼文 时间: 2012-4-21 21:30
标题: ado.net中的封装 DataSet 强类型 2
接 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];
}
}
}
}
作者: 杨礼文 时间: 2012-4-21 21:35
内容太长 这是连接 http://bbs.itheima.com/home.php? ... orward=1&id=652
作者: ︻◣㊣袏邊愛☆ 时间: 2012-4-24 18:30
学习了谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |