Esempio n. 1
0
        /// <summary>
        /// 获取DataAdapter
        /// </summary>
        /// <param name="dbType"></param>
        /// <param name="objConn"></param>
        /// <param name="strSql"></param>
        /// <returns></returns>
        private static OperationReturn GetDataAdapter(int dbType, IDbConnection objConn, string strSql)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = Defines.RET_SUCCESS;
            switch (dbType)
            {
            case Defines.VCT_DBTYPE_MSSQL:
                optReturn.Data = MsSqlOperations.GetDataAdapter(objConn, strSql);
                break;

            //case Defines.VCT_DBTYPE_MYSQL:
            //    optReturn.Data = MySqlOperations.GetDataAdapter(objConn, strSql);
            //    break;
            //case Defines.VCT_DBTYPE_ORACLE:
            //    optReturn.Data = OracleOperations.GetDataAdapter(objConn, strSql);
            //    break;
            default:
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_NOT_IMPLIMENT;
                optReturn.Message = string.Format("Database not impliment now\t{0}", dbType);
                break;
            }
            return(optReturn);
        }
Esempio n. 2
0
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procedureName"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public OperationReturn ExecuteProcedure(string procedureName, List <DBCommandParameter> parameters)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = Defines.RET_SUCCESS;
            if (mDBParam == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("DatabaseParam is null");
                return(optReturn);
            }
            if (mObjConnection == null)
            {
                string strConn = GetConnectionString(mDBParam);
                lock (mObjConnectionLocker)
                {
                    optReturn = GetConnection(mDBParam.DBType, strConn);
                }
                if (!optReturn.Result)
                {
                    return(optReturn);
                }
                mObjConnection = optReturn.Data as IDbConnection;
            }
            if (mObjConnection == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("Connection is null");
                return(optReturn);
            }
            try
            {
                IDbDataParameter[] arrDataParameters = new IDbDataParameter[parameters.Count];
                for (int i = 0; i < parameters.Count; i++)
                {
                    IDbDataParameter parameter;
                    switch (parameters[i].DBType)
                    {
                    //case Defines.VCT_DBTYPE_MYSQL:
                    //    parameter = MySqlOperations.GetDataParameter(parameters[i]);
                    //    break;
                    case Defines.VCT_DBTYPE_MSSQL:
                        parameter = MsSqlOperations.GetDataParameter(parameters[i]);
                        break;

                    //case Defines.VCT_DBTYPE_ORACLE:
                    //    parameter = OracleOperations.GetDataParameter(parameters[i]);
                    //    break;
                    default:
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_NOT_IMPLIMENT;
                        optReturn.Message = string.Format("Database type not support.\t{0}", parameters[i].DBType);
                        return(optReturn);
                    }
                    if (parameter == null)
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_OBJECT_NULL;
                        optReturn.Message = string.Format("Parameter is null");
                        return(optReturn);
                    }
                    parameter.Value      = parameters[i].ParamValue;
                    parameter.Direction  = parameters[i].Direction;
                    arrDataParameters[i] = parameter;
                }
                IDbCommand objCmd = mObjConnection.CreateCommand();
                objCmd.CommandType = CommandType.StoredProcedure;
                objCmd.CommandText = procedureName;
                for (int i = 0; i < arrDataParameters.Length; i++)
                {
                    objCmd.Parameters.Add(arrDataParameters[i]);
                }
                if (mObjConnection.State != ConnectionState.Open)
                {
                    lock (mObjConnectionLocker)
                    {
                        mObjConnection.Open();
                    }
                }
                optReturn.IntValue = objCmd.ExecuteNonQuery();
                for (int i = 0; i < arrDataParameters.Length; i++)
                {
                    if (arrDataParameters[i].Direction == ParameterDirection.Output ||
                        arrDataParameters[i].Direction == ParameterDirection.InputOutput)
                    {
                        parameters[i].ParamValue = arrDataParameters[i].Value;
                    }
                }
                optReturn.Data = parameters;
            }
            catch (Exception ex)
            {
                optReturn.Result    = false;
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            return(optReturn);
        }