供求信息网(8)

代码贴士

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

读书导航