封装SqlHelper类,为类库做准备
执行增(insert) 删(delete) 改(update)
ExecuteQuery()
需要返回一个单个的值
ExecuteScalar()
需要查询多行多列
ExecuteReader()
ReadOnly修饰的变量只能在初始化和构造函数时赋值,其余时候只能读不能改
添加 新建项 应用程序配置文件 App.config
创建一个SqlHelper类
静态连接字符串
private static readonly string conStr = ConfigurationManager.ConnectionStrings["mssalserver"].ConnectionString;
放在新建应用程序文件中
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
1.
//1.执行增(insert) 删(delete)改(update)的方法 ExecuteNonQuery()
public static int ExecuteNonQuery(string sql,params SqlParameter[] pms)
{
//可变参数????
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if(pms!=null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteNonQuery();
}
}
}
//2.查询返回单个值的方法 ExecuteScalar()
public static object ExecuteScalar(string sql, params SqlParameter[] pms)
{
//可变参数????
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (pms != null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteScalar();
}
}
}
//3.执行查询 返回多行 多列的方法 ExecuteReader()
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);
}
try
{
con.Open();
return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
//使用枚举参数,表示将来使用完毕SqlDataReader之后,在关闭reader同时,在SqlDataReader内部会将相关联的Connection对象也关闭掉
}
finally
{
con.Close();
con.Dispose();
}
}
}
}