日期:2011-07-03  浏览次数:20337 次

//Copyright(C) 2000-2006 Shixin Corporation
//All rights reserverd
//文件名: SQLHelper.cs
//创建者:
//创建日期: 2006-03-21
//概述: DataAccess层的数据访问Helper文件,模仿自Microsoft DAAB1.0。
//修改人/修改日期: 
//开放STR_CONNECTION连接字符串,因为SqlConnection是非托管资源,无法自动回收。

using System;
using System.Data;
using System.Xml;
using System.Data.SqlClient;
using System.Collections;
using System.Configuration;
using System.Collections.Specialized;

using SPS.Common;


namespace SPS.DataAccess
{
    /**//// <summary>
    /// SQLHelper 被DataAccess里的任何类调用,执行Insert,Update,SetValid和Select等组成的存储过程
    /// </summary>
    public class SqlHelper
    {
        //缓存SqlParameter数组对象的Hashtable
        private static Hashtable paramCache = Hashtable.Synchronized(new Hashtable());

        //连接字符串
        public static string STR_CONNECTION;

        //SqlConnection
        //private static SqlConnection conn;

        "Public Functions"#region "Public Functions"
        /**//// <summary>
        /// 获取SqlConnection
        /// </summary>
        /// <remark>
        /// 因为SqlConnection不是托管资源,所以在这里无法回收,所以在这里屏蔽掉
        /// </remark>
        /// <returns>SqlConnection对象</returns>
//        public static SqlConnection GetConnection()
//        {
//            if(conn==null)
//                conn=new SqlConnection(STR_CONNECTION);
//            return conn;
//        }

        /**//// <summary>
        /// 执行XXXInsert,XXXUpdate,XXXSetValid类型的存储过程
        /// </summary>
        /// <remarks>
        /// 参数Hashtable里的Key名需要和存储过程里的参数名保持一致;
        /// 存储过程的参数全部要在Hashtable中存在;
        /// </remarks>
        /// <param name="hashtable">由存储过程参数组成的Hashtable</param>
        /// <param name="strSPName">存储过程名称</param>
        /// <returns>Insert情况的PKID、或Update、SetValid情况的改变记录数</returns>
        public static int ModifyTable(Hashtable hashtable,string strSPName)
        {
            //获取SQL连接
            //SqlConnection conn=GetConnection();
            using(SqlConnection conn=new SqlConnection(STR_CONNECTION))
            {