Пример #1
0
        /// <summary>
        /// 执行SQL语句,返回受影响的行数
        /// </summary>
        /// <param name="AIntDBType">数据库类型。2:MS SQL;3:Oracle</param>
        /// <param name="AStrDBConnectProfile">数据库连接字符串</param>
        /// <param name="AStrSQLString">需要执行的SQL语句</param>
        /// <returns></returns>
        public DatabaseOperation01Return ExecuteDynamicSQL(int AIntDBType, string AStrDBConnectProfile, string AStrSQLString)
        {
            DatabaseOperation01Return LClassReturn = new DatabaseOperation01Return();
            int LIntExecureReturn = 0;

            SqlConnection    LSqlConnection    = null;
            SqlCommand       LSqlCommand       = null;
            OracleConnection LOracleConnection = null;
            OracleCommand    LOracleCommand    = null;

            try
            {
                if (AIntDBType == 2)
                {
                    LSqlConnection = new SqlConnection(AStrDBConnectProfile);
                    LSqlConnection.Open();
                    LSqlCommand       = new SqlCommand(AStrSQLString, LSqlConnection);
                    LIntExecureReturn = LSqlCommand.ExecuteNonQuery();
                }
                if (AIntDBType == 3)
                {
                    LOracleConnection = new OracleConnection(AStrDBConnectProfile);
                    LOracleConnection.Open();
                    LOracleCommand    = new OracleCommand(AStrSQLString, LOracleConnection);
                    LIntExecureReturn = LOracleCommand.ExecuteNonQuery();
                }
                LClassReturn.StrReturn = LIntExecureReturn.ToString();
            }
            catch (Exception ex)
            {
                LClassReturn.BoolReturn = false;
                LClassReturn.StrReturn  = "DataOperations01.ExecuteDynamicSQL()\n" + ex.ToString();
            }
            finally
            {
                if (LSqlCommand != null)
                {
                    LSqlCommand.Dispose(); LSqlCommand = null;
                }
                if (LSqlConnection != null)
                {
                    if (LSqlConnection.State == System.Data.ConnectionState.Open)
                    {
                        LSqlConnection.Close();
                    }
                    LSqlConnection.Dispose();
                }
                if (LOracleCommand != null)
                {
                    LOracleCommand.Dispose(); LOracleCommand = null;
                }
                if (LOracleConnection != null)
                {
                    if (LOracleConnection.State == ConnectionState.Open)
                    {
                        LOracleConnection.Close();
                    }
                    LOracleConnection.Dispose(); LOracleConnection = null;
                }
            }

            return(LClassReturn);
        }
Пример #2
0
        /// <summary>
        /// 获取流水号
        /// </summary>
        /// <param name="AIntDBType">数据库类型。2:MS SQL;3:Oracle</param>
        /// <param name="AStrDBConnectProfile">数据库连接字符串</param>
        /// <param name="AIntModuleID">模块编码 11 - 99</param>
        /// <param name="AIntSerialType">流水号类型编码 100 ~ 920</param>
        /// <param name="AStrRent5">租户编码(表5位)</param>
        /// <param name="AStrTime">流水号时间(yyyyMMddHHmmss)</param>
        /// <returns>19位长度的字符串,DatabaseOperation01Return.StrReturn</returns>
        public DatabaseOperation01Return GetSerialNumberByProcedure(int AIntDBType, string AStrDBConnectProfile, int AIntModuleID, int AIntSerialType, string AStrRentID5, string AStrTime)
        {
            DatabaseOperation01Return LClassReturn = new DatabaseOperation01Return();

            SqlConnection    LSqlConnection    = null;
            SqlCommand       LSqlCommand       = null;
            OracleConnection LOracleConnection = null;
            OracleCommand    LOracleCommand    = null;

            try
            {
                if (AIntDBType == 2)
                {
                    #region MS SQL 数据库
                    LSqlConnection = new SqlConnection(AStrDBConnectProfile);
                    LSqlConnection.Open();
                    LSqlCommand             = new SqlCommand();
                    LSqlCommand.Connection  = LSqlConnection;
                    LSqlCommand.CommandType = CommandType.StoredProcedure;
                    LSqlCommand.CommandText = "P_00_001";
                    SqlParameter[] LSqlParameter =
                    {
                        new SqlParameter("@AInParam01",      SqlDbType.VarChar, 2),       //0
                        new SqlParameter("@AInParam02",      SqlDbType.VarChar, 3),       //1
                        new SqlParameter("@AInParam03",      SqlDbType.VarChar, 5),       //2
                        new SqlParameter("@AInParam04",      SqlDbType.VarChar, 20),      //3
                        new SqlParameter("@AOutParam01",     SqlDbType.VarChar, 20),      //4
                        new SqlParameter("@AOutErrorNumber", SqlDbType.Int),              //5
                        new SqlParameter("@AOutErrorString", SqlDbType.NVarChar, 2000)    //6
                    };
                    LSqlParameter[0].Value = AIntModuleID.ToString();
                    LSqlParameter[1].Value = AIntSerialType.ToString();
                    LSqlParameter[2].Value = AStrRentID5;
                    LSqlParameter[3].Value = AStrTime;

                    LSqlParameter[4].Direction = ParameterDirection.Output;
                    LSqlParameter[5].Direction = ParameterDirection.Output;
                    LSqlParameter[6].Direction = ParameterDirection.Output;

                    foreach (SqlParameter LSqlParameterSingle in LSqlParameter)
                    {
                        LSqlCommand.Parameters.Add(LSqlParameterSingle);
                    }

                    LSqlCommand.ExecuteNonQuery();
                    if (LSqlParameter[5].Value.ToString() != "0")
                    {
                        LClassReturn.BoolReturn = false;
                        LClassReturn.StrReturn  = LSqlParameter[6].Value.ToString();
                    }
                    else
                    {
                        LClassReturn.StrReturn = LSqlParameter[4].Value.ToString();
                    }
                    #endregion
                }
                if (AIntDBType == 3)
                {
                    #region Oracle 数据库
                    LOracleConnection = new OracleConnection(AStrDBConnectProfile);
                    LOracleConnection.Open();
                    LOracleCommand             = new OracleCommand();
                    LOracleCommand.Connection  = LOracleConnection;
                    LOracleCommand.CommandType = CommandType.StoredProcedure;
                    LOracleCommand.CommandText = "P_00_001";
                    OracleParameter[] LOracleParameter =
                    {
                        new OracleParameter("AInParam01",  OracleDbType.Varchar2, 2),           //0
                        new OracleParameter("AInParam02",  OracleDbType.Varchar2, 3),           //1
                        new OracleParameter("AInParam03",  OracleDbType.Varchar2, 5),           //2
                        new OracleParameter("AInParam04",  OracleDbType.Varchar2, 20),          //3
                        new OracleParameter("AOutParam01", OracleDbType.Varchar2, 20),          //4
                        new OracleParameter("ErrorNumber", OracleDbType.Int32),                 //5
                        new OracleParameter("ErrorString", OracleDbType.NVarchar2, 2000)        //6
                    };

                    LOracleParameter[0].Value = AIntModuleID.ToString();
                    LOracleParameter[1].Value = AIntSerialType.ToString();
                    LOracleParameter[2].Value = AStrRentID5;
                    LOracleParameter[3].Value = AStrTime;

                    LOracleParameter[4].Direction = ParameterDirection.Output;
                    LOracleParameter[5].Direction = ParameterDirection.Output;
                    LOracleParameter[6].Direction = ParameterDirection.Output;

                    foreach (OracleParameter LOracleParameterSingle in LOracleParameter)
                    {
                        LOracleCommand.Parameters.Add(LOracleParameterSingle);
                    }

                    LOracleCommand.ExecuteNonQuery();
                    if (LOracleParameter[5].Value.ToString() != "0")
                    {
                        LClassReturn.BoolReturn = false;
                        LClassReturn.StrReturn  = LOracleParameter[6].Value.ToString();
                    }
                    else
                    {
                        LClassReturn.StrReturn = LOracleParameter[4].Value.ToString();
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                LClassReturn.BoolReturn = false;
                LClassReturn.StrReturn  = "DataOperations01.GetSerialNumberByProcedure()\n" + ex.ToString();
            }
            finally
            {
                if (LSqlCommand != null)
                {
                    LSqlCommand.Dispose(); LSqlCommand = null;
                }
                if (LSqlConnection != null)
                {
                    if (LSqlConnection.State == System.Data.ConnectionState.Open)
                    {
                        LSqlConnection.Close();
                    }
                    LSqlConnection.Dispose();
                }
                if (LOracleCommand != null)
                {
                    LOracleCommand.Dispose(); LOracleCommand = null;
                }
                if (LOracleConnection != null)
                {
                    if (LOracleConnection.State == ConnectionState.Open)
                    {
                        LOracleConnection.Close();
                    }
                    LOracleConnection.Dispose(); LOracleConnection = null;
                }
            }

            return(LClassReturn);
        }