悬赏分:10 该问题已到期 浏览:100 次
下面的accesshelper是我从SqlHelper改过来的,但是使用中发现调用某个方法后,数据库一直处于连接状态,这样再操作数据库就出错了。烦恼中,请各位大侠帮忙,看要怎么修改,方法调用结束后可以立刻关闭数据库。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Collections;
using System.Data.OleDb;
namespace Jdpc
{
/// <summary>
/// 数据库的通用访问代码
/// 此类为抽象类,不允许实例化,在应用时直接调用即可
/// </summary>
public abstract class AccessbHelper
{
//获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改
public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
// 哈希表用来存储缓存的参数信息,哈希表可以存储任意类型的参数。
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
/// <summary>
///执行一个不需要返回值的OleDbCommand命令,通过指定专用的连接字符串。
/// 使用参数数组形式提供参数列表
/// </summary>
/// <remarks>
/// 使用示例:
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new OleDbParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString">一个有效的数据库连接字符串</param>
/// <param name="commandType">OleDbCommand命令类型 (存储过程, T-OleDb语句, 等等。)</param>
/// <param name="commandText">存储过程的名字或者 T-OleDb 语句</param>
/// <param name="commandParameters">以数组形式提供OleDbCommand命令中用到的参数列表</param>
/// <returns>返回一个数值表示此OleDbCommand命令执行后影响的行数</returns>
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(connectionString))
&