|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace Student_MI
{
///
/// 数据库助手类
///
public class SqlHelper
{
private SqlConnection conn = null;//表示一个到 SQL Server 数据库的打开的连接
private SqlCommand cmd = null; //表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程
private SqlDataReader sdr = null; //提供一种从 SQL Server 数据库读取行的只进流的方式
///
/// 连接数据库
///
public SqlHelper()
{
string connStr = "Data Source=.;Initial Catalog=StudentManager;Integrated Security=True";
conn = new SqlConnection(connStr);
}
///
/// 打开数据库连接
///
///
private SqlConnection GetConn()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
}
///
/// 执行不带参数的增删改SQL语句或存储过程
///
/// 增删改SQL语句或存储过程
/// 命令类型
///
public int ExecuteNonQuery(string cmdText, CommandType ct)// CommandType命令类型
{
int res;
try
{
cmd = new SqlCommand(cmdText, GetConn());//向打开的数据库中插入执行命令
cmd.CommandType = ct; //设置要执行命令的类型
res = cmd.ExecuteNonQuery();//执行增删查改用到的方法,返回受影响的行数,是一个整数类型
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
{
conn.Close();
}
}
return res;
}
///
/// 执行带参数的增删改SQL语句或存储过程
///
/// 增删改SQL语句或存储过程
/// 命令类型
///
public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)
{
int res;
try
{
using (cmd = new SqlCommand(cmdText, GetConn()))
{
cmd.CommandType = ct;
//cmd.Parameters的Add方法是增加一个参数,增加多个参数的的时候使用一个foreach循环而已 将指定的 SqlParameter 对象添加到 SqlParameterCollection 中
//cmd.Parameters的AddRange方法是增加一个参数的数组 将值数组添加到 SqlParameterCollection 的末尾
cmd.Parameters.AddRange(paras);
res = cmd.ExecuteNonQuery();//执行增删查改用到的方法,返回受影响的行数,是一个整数类型
}
}
catch (Exception ex)
{
throw ex;
}
return res;
}
///
/// 执行查询SQL语句或存储过程
///
/// 查询SQL语句或存储过程
/// 命令类型
/// 返回DataTable对象
public DataTable ExecuteQuery(string cmdText, CommandType ct)
{
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
try
{
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return dt;
}
///
/// 执行带参数的查询SQL语句或存储过程
///
/// 查询SQL语句或存储过程
/// 参数集合
/// 命令类型
///
public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
{
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
}
}
}
|
|