using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Text; 
 | 
using System.Data.SqlClient; 
 | 
using System.Data; 
 | 
using System.Windows.Forms; 
 | 
  
 | 
namespace HuanXin.ERP 
 | 
{ 
 | 
    class ClsCN:IDisposable 
 | 
    { 
 | 
        private SqlConnection MainCn;//创建连接对象 
 | 
        SqlTransaction MainTran; 
 | 
        public string sServer; 
 | 
        public string sDataBase ; 
 | 
        public string sUser; 
 | 
        public string sPassword; 
 | 
        //开始事务 
 | 
        public void  BeginTran() 
 | 
        { 
 | 
            if (!this.CnOpen()) 
 | 
                return; 
 | 
            MainTran=MainCn.BeginTransaction(); 
 | 
        } 
 | 
        //结束事务 
 | 
        public void Commit() 
 | 
        { 
 | 
            MainTran.Commit(); 
 | 
            CnClose(); 
 | 
        } 
 | 
        //回滚事务 
 | 
        public void RollBack() 
 | 
        { 
 | 
            MainTran.Rollback(); 
 | 
            CnClose(); 
 | 
        } 
 | 
  
 | 
        public ClsCN() 
 | 
        { 
 | 
            ClsIni oIni = new ClsIni(); 
 | 
            sServer = oIni.ReadIni("Erp", "Server", "HXErp.ini"); 
 | 
            sDataBase = oIni.ReadIni("Erp", "DataBase", "HXErp.ini"); 
 | 
            sUser = oIni.ReadIni("Erp", "UserName", "HXErp.ini"); 
 | 
            sPassword = oIni.ReadIni("Erp", "PassWord", "HXErp.ini"); 
 | 
        } 
 | 
  
 | 
        public bool CheckOpen() 
 | 
        { 
 | 
            SqlConnection oCn = new SqlConnection("Data Source=" + sServer + ";DataBase=" + sDataBase + ";User ID=" + sUser + ";PWD=" + sPassword + " "); 
 | 
            try 
 | 
            { 
 | 
                oCn.Open(); 
 | 
                return true; 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
                return false; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private bool  CnOpen()//OPEN数据库连接 
 | 
        { 
 | 
            if (MainCn==null) 
 | 
            { 
 | 
                MainCn = new SqlConnection("Data Source="+ sServer +";DataBase=" + sDataBase + ";User ID=" + sUser  + ";PWD=" + sPassword  + " "); 
 | 
            } 
 | 
            if (MainCn.State == System.Data.ConnectionState.Closed) 
 | 
            { 
 | 
                try 
 | 
                { 
 | 
                    MainCn.Open(); 
 | 
                    return true; 
 | 
                } 
 | 
                catch (Exception e) 
 | 
                { 
 | 
                    return false ; 
 | 
                } 
 | 
            } 
 | 
            else 
 | 
                return true; 
 | 
        } 
 | 
        private void CnClose()//关闭数据库连接 
 | 
        { 
 | 
            if (MainCn != null) 
 | 
                MainCn.Close(); 
 | 
        } 
 | 
        private void CnDispose()//释放资源 
 | 
        { 
 | 
            if(MainCn!=null) 
 | 
            { 
 | 
                MainCn.Dispose(); 
 | 
                MainCn=null; 
 | 
            } 
 | 
        } 
 | 
        /// <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> 
 | 
        private 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; 
 | 
        } 
 | 
  
 | 
        //public int RunProc(string procName,SqlParameter[] prams) 
 | 
        //{ 
 | 
        //    SqlCommand cmd = CreateCommand(procName, prams); 
 | 
        //    if (cmd == null) 
 | 
        //        return 0; 
 | 
        //    cmd.ExecuteNonQuery(); 
 | 
        //    return (int)cmd.Parameters["ReturnValue"].Value; 
 | 
        //} 
 | 
        public int RunProc(string procName) 
 | 
        { 
 | 
            if (!this.CnOpen()) 
 | 
                return 0; 
 | 
            SqlCommand cmd = new SqlCommand(procName, MainCn); 
 | 
            cmd.Transaction = MainTran; 
 | 
            cmd.ExecuteNonQuery(); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName) 
 | 
        { 
 | 
            SqlDataAdapter dap = CreateDataAdaper(procName, prams); 
 | 
            if (dap == null) 
 | 
                return null; 
 | 
            DataSet ds = new DataSet(); 
 | 
            try 
 | 
            { 
 | 
                dap.Fill(ds, tbName); 
 | 
                return ds; 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
                //MessageBox.Show("读取失败,请与管理员联系!"+e.Message); 
 | 
                return null; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public DataSet RunProcReturn(string procName, string tbName) 
 | 
        { 
 | 
            SqlDataAdapter dap = CreateDataAdaper(procName, null); 
 | 
            DataSet ds = new DataSet(); 
 | 
            try 
 | 
            { 
 | 
                dap.Fill(ds, tbName); 
 | 
                return ds; 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
                //MessageBox.Show("读取失败,请与管理员联系!" + e.Message); 
 | 
                return null; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams) 
 | 
        { 
 | 
            if (this.CnOpen()) 
 | 
            { 
 | 
                SqlDataAdapter dap = new SqlDataAdapter(procName, MainCn); 
 | 
                dap.SelectCommand.CommandType = CommandType.Text; 
 | 
                if (prams != null) 
 | 
                { 
 | 
                    foreach (SqlParameter parameter in prams) 
 | 
                        dap.SelectCommand.Parameters.Add(parameter); 
 | 
                } 
 | 
                dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4, 
 | 
                    ParameterDirection.ReturnValue, false, 0, 0, 
 | 
                    string.Empty, DataRowVersion.Default, null)); 
 | 
                return dap; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                return null; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private SqlCommand CreateCommand(string procName, SqlParameter[] prams) 
 | 
        { 
 | 
            if (this.CnOpen()) 
 | 
            { 
 | 
                SqlCommand cmd = new SqlCommand(procName, MainCn); 
 | 
                cmd.CommandType = CommandType.Text; 
 | 
                cmd.Transaction = MainTran; 
 | 
                if (prams != null) 
 | 
                { 
 | 
                    foreach (SqlParameter parameter in prams) 
 | 
                        cmd.Parameters.Add(parameter); 
 | 
                } 
 | 
                cmd.Parameters.Add( 
 | 
                    new SqlParameter("ReturnValue", SqlDbType.Int, 4, 
 | 
                    ParameterDirection.ReturnValue, false, 0, 0, 
 | 
                    string.Empty, DataRowVersion.Default, null)); 
 | 
                return cmd; 
 | 
            } 
 | 
            else 
 | 
                return null; 
 | 
        } 
 | 
  
 | 
        #region IDisposable 成员 
 | 
  
 | 
        public void Dispose() 
 | 
        { 
 | 
            throw new Exception("The method or operation is not implemented."); 
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
    } 
 | 
} 
 |