代码贴士
SqlConnection类:表示SQL Server数据库的一个打开的连接。
State属性:数据库连接状态。
Open()方法:打开数据库连接。
2.关闭数据库连接的Close()方法
关闭数据库连接主要通过SqlConnection对象的Close()方法实现。自定义Close()方法关闭数据库连接的代码如下:
例程02 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 关闭连接
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
if (con != null) //判断是否存在连接
con.Close();
}
#endregion
3.释放数据库连接资源的Dispose()方法
由于DataBase类使用System.IDisposable接口,IDisposable接口声明了一个Dispose()方法,所以应该完善此方法,用来释放数据库连接资源。
实现释放数据库连接资源的Dispose方法代码如下:
例程03 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 释放数据库连接资源
/// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
// 确认连接是否已经关闭
if (con != null)
{
con.Dispose();
con = null;
}
}
#endregion
4.初始化SqlParameter参数值
本程序向数据库中读写数据是以参数形式实现的(与使用存储过程读写数据类似)。其中MakeInParam()方法用于传入参数,MakeParam()方法用于转换参数。
实现MakeInParam()方法和MakeParam()方法的完整代码如下:
例程04 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region传入参数并且转换为SqlParameter类型
/// <summary>
/// 传入参数
/// </summary>
/// <param name="ParamName">存储过程名称或命令文本</param>
/// <param name="DbType">参数类型</param></param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的parameter 对象</returns>
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
/// <summary>
/// 初始化参数值
/// </summary>
/// <param name="ParamName">存储过程名称或命令文本</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
if (Size > 0) //判断数据类型大小
param = new SqlParameter(ParamName, DbType, Size);
else
param = new SqlParameter(ParamName, DbType);
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value;
return param;
}
#endregion
代码贴士
SqlParameter类:用参数名称、SqlDbType、大小和源列名称初始化SqlParameter类的新实例。
Direction属性:获取或设置一个值,该参数值为只可输入、只可输出、双向还是存储过程返回值参数。
Value属性:获取或设置该参数的值。
5.执行参数命令文本或SQL语句
RunProc()方法为可重载方法。其中,RunProc(string procName)方法主要用于执行简单的数据库添加、修改、删除等操作(例如,SQL语句);RunProc(string procName, SqlParameter[] prams)方法主要用于执行复杂的数据库添加、修改、删除等操作(带参数SqlParameter的命令文本的SQL语句)。
实现可重载方法RunProc()的完整代码如下:
例程05 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 执行参数命令文本(无数据库中数据返回)
/// <summary>
/// 执行命令
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <returns></returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
//得到执行成功返回值
return (int)cmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 直接执行SQL语句
/// </summary>
/// <param name="procName">命令文本</param>
/// <returns></returns>
public int RunProc(string procName)
{
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.ExecuteNonQuery();
this.Close();
return 1;
}
#endregion