您的位置:首页 > 编程语言 > Java开发

免费课程:Java初级教程视频――私塾在线提供

2012-02-07 10:48 1216 查看
封装SqlHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace Student_MI
{
/// <summary>
/// 数据库助手类
/// </summary>
public   class SqlHelper
{
private SqlConnection conn = null;//表示一个到 SQL Server 数据库的打开的连接
private SqlCommand    cmd = null; //表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程
private SqlDataReader sdr = null; //提供一种从 SQL Server 数据库读取行的只进流的方式
/// <summary>
/// 连接数据库
/// </summary>
public SqlHelper()
{
string connStr = "Data Source=.;Initial Catalog=StudentManager;Integrated Security=True";
conn = new SqlConnection(connStr);
}
/// <summary>
/// 打开数据库连接
/// </summary>
/// <returns></returns>
private SqlConnection GetConn()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
}

/// <summary>
/// 执行不带参数的增删改SQL语句或存储过程
/// </summary>
/// <param name="cmdText">增删改SQL语句或存储过程</param>
/// <param name="ct">命令类型</param>
/// <returns></returns>
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;
}

/// <summary>
///  执行带参数的增删改SQL语句或存储过程
/// </summary>
/// <param name="cmdText">增删改SQL语句或存储过程</param>
/// <param name="ct">命令类型</param>
/// <returns></returns>
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;
}

/// <summary>
///  执行查询SQL语句或存储过程
/// </summary>
/// <param name="cmdText">查询SQL语句或存储过程</param>
/// <param name="ct">命令类型</param>
/// <returns>返回DataTable对象</returns>
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;
}

/// <summary>
///  执行带参数的查询SQL语句或存储过程
/// </summary>
/// <param name="cmdText">查询SQL语句或存储过程</param>
/// <param name="paras">参数集合</param>
/// <param name="ct">命令类型</param>
/// <returns></returns>
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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: