1.首先在web.config配置链接字符串,方便使用
<connectionStrings>
<add name="conn" connectionString="server=.;database=Students;uid=sa;pwd=123"/>
</connectionStrings>
2.新建一个类命名为SQLHelper并引用以下命名空间
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
3.获取链接字符串为避免重复操作,这里定位全局变量
static string constr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
//需要引用Configuration
这里把链接对象也定义为全局变量
static SqlConnection conn = new SqlConnection(constr);
同时也是为了避免重复操作把打开和关闭链接对象定义为方法以便后面使用
public static void Open()
{
//判断如果处于关闭状态则打开
if(conn.State== System.Data.ConnectionState.Closed)
{
conn.Open();
}
}
public static void Close()
{
//判断如果处于打开状态则关闭
if(conn.State== System.Data.ConnectionState.Open)
{
conn.Close();
}
}
4.查询数据返回第一行第一列
public static object ExecuteScalar(string sql, params SqlParameter[] parm)
{
Open();
SqlCommand cmd = new SqlCommand(sql, conn);
if (parm.Length > 0)
{
foreach (SqlParameter item in parm)
{
cmd.Parameters.Add(item);
}
}
object rs = cmd.ExecuteScalar();
Close();
return rs;
}
5.返回一个阅读器对象
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parm)
{
Open();
SqlCommand cmd = new SqlCommand(sql, conn);
if (parm.Length > 0)
{
foreach (SqlParameter item in parm)
{
cmd.Parameters.Add(item);
}
}
SqlDataReader rs = cmd.ExecuteReader();
Close();
return rs;
}
6.进行增,删,改 ExecuteNonQuery() 是否成功 bool
/// <summary>
/// 用于增,删,改操作
/// </summary>
/// <param name="sql">操作的sql语句</param>
/// <param name="parm">所用参数:SqlParameter类型</param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql,params SqlParameter[] parm)
{
Open();
SqlCommand cmd = new SqlCommand(sql, conn);
if (parm.Length > 0)
{
foreach (SqlParameter item in parm)
{
cmd.Parameters.Add(item);
}
}
int rs= cmd.ExecuteNonQuery();
Close();
if (rs > 0)
{
return true;
}
else
{
return false;
}
}
7.用适配器返回一个datatable
/// <summary>
/// 返回一个查询的数据表
/// </summary>
/// <param name="sql">操作的sql语句</param>
/// <param name="parm">所用参数:SqlParameter类型</param>
/// <returns></returns>
public static DataTable DataTable(string sql,params SqlParameter[] parm)
{
SqlDataAdapter sda = new SqlDataAdapter(sql, constr);
foreach (SqlParameter item in parm)
{
//向适配器中添加参数
sda.SelectCommand.Parameters.Add(item);
}
DataSet ds = new DataSet();
sda.Fill(ds);
return ds.Tables[0];
}
这样增删改查方法就封装好了下面是使用
如调用删除方法
//删除 根据用户输入的课程编号来删除课程信息
private void button2_Click(object sender, EventArgs e)
{
string cid = this.textBox1.Text;
string sql = "delete from courseInfo where cid=@id";
SqlParameter sp = new SqlParameter("@id", cid);
bool result= SQLHelper.ExecuteNonQuery(sql, sp);
if (result)
{
MessageBox.Show("删除成功");
}
else
{
MessageBox.Show("删除失败");
}
}
其他方法同理