C#访问数据库的类

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.ProviderBase;
{
    public class Conn
    {
        SqlConnection MyConn ;
        /// <summary>
        /// 构造函数
        /// </summary>
        public Conn()
     {
        /// Conf配置访问类
          MyConn = new SqlConnection(Conf.StrConn);
     }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="strConn">连接字符串</param>
        public Conn(string strConn)
        {
            MyConn = new SqlConnection(strConn);
        }
        /// <summary>
        /// 获取/设置数据库连接字符串
        /// </summary>
        public string StrConn
        {
            get
            {
                return MyConn.ConnectionString;
            }
            set
            {
                MyConn.ConnectionString = value;
            }
        }
        /// <summary>
        /// 执行SQL语句返回记录集
        /// </summary>
        /// <param name="SQL">SQL语句</param>
        /// <returns>DataSet</returns>
        public DataSet GetSet(string SQL)
        {
            SqlDataAdapter dpt ;
            DataSet ds = new DataSet();
            try
            {
                Open();
                dpt = new SqlDataAdapter(SQL, MyConn);
                dpt.Fill(ds);
                MyConn.Close();
                dpt.Dispose();
            }
            catch (SqlException ex)
            {
                throw new Exception(ex.Message);
            }
            Close();
            return ds;
        }
        /// <summary>
        /// 执行存储过程返回结果集
        /// </summary>
        /// <param name="ProcName">存储过程名称</param>
        /// <param name="Param">参数数组</param>
        /// <returns>DatSet</returns>
        public DataSet GetSet(string ProcName, SqlParameter[] Param)
        {
            SqlDataAdapter dpt;
            DataSet ds = new DataSet();
            try
            {
                Open();
                SqlCommand sqlComm = new SqlCommand(ProcName, MyConn);
                sqlComm.CommandType = CommandType.StoredProcedure;
                sqlComm.Parameters.AddRange(Param);
                dpt = new SqlDataAdapter(sqlComm);
                dpt.Fill(ds);
                MyConn.Close();
            }
            catch (SqlException ex)
            {
                Err.LogErr(ex.Message);
            }
            Close();
            return ds;
        }
        /// <summary>
        /// 执行无返回值的SQL语句
        /// </summary>
        /// <param name="SQl">SQL语句</param>
        public int ExecSQL(String SQl)
        {
            int flag = -1;
            SqlCommand Comm = new SqlCommand(SQl, MyConn);
            try
            {
                Open();
                flag = Comm.ExecuteNonQuery();
                MyConn.Close();
            }
            catch (SqlException ex)
            {
                Err.LogErr(ex.Message+SQl);
            }
            Close();
            return flag;
        }
        /// <summary>
        /// 执行无返回值的存储过程
        /// </summary>
        /// <param name="ProcName">存储过程名称</param>
        /// <param name="Param">参数数组</param>
        public int ExecSQL(string ProcName, SqlParameter[] Param)
        {
            SqlCommand Comm = new SqlCommand(ProcName, MyConn);
            int flag = -1;
            try
            {
                Open();
                Comm.CommandType = CommandType.StoredProcedure;
                Comm.Parameters.AddRange(Param);
                flag=Comm.ExecuteNonQuery();
                Close();
            }
            catch (SqlException ex)
            {
                Err.LogErr(ex.Message);
            }
            Close();
            return flag;
        }
        /// <summary>
        /// 执行SQL返回DataReader
        /// </summary>
        /// <returns>datareader</returns>
        /// <param name="SQL">执行SQL语句</param>
        public SqlDataReader GetRead(String SQL)
        {
            SqlDataReader rd;
            SqlCommand comm = new SqlCommand(SQL, MyConn);
            Open();
            rd = comm.ExecuteReader(CommandBehavior.CloseConnection);
            return rd;
        }
        /// <summary>
        /// 执行存储过程返回DataReader
        /// </summary>
        /// <param name="ProcName">存储过程名称</param>
        /// <param name="Param">存储过程参数</param>
        /// <returns></returns>
        public SqlDataReader GetRead(string ProcName, SqlParameter[] Param)
        {
            SqlDataReader rd;
            SqlCommand comm = new SqlCommand(ProcName, MyConn);
            Open();
            comm.CommandType = CommandType.StoredProcedure;
            comm.Parameters.AddRange(Param);
            rd = comm.ExecuteReader(CommandBehavior.CloseConnection);
            return rd;
        }
        public void Close()
        {
            if (MyConn.State == ConnectionState.Open)
            {
                MyConn.Close();
            }
        }
        private void Open()
        {
            if (MyConn.State == ConnectionState.Closed)
            {
                MyConn.Open();
            }
        }
    }
}

posted on 2007-05-05 09:33  石川  阅读(245)  评论(0编辑  收藏  举报