예제 #1
0
    public DataTable QuerySwitch(QueryType QT, ArrayList ParameterList)
    {
      VDS_ALO_PARAM_DBO ALOM = new VDS_ALO_PARAM_DBO(ref USEDB);
      DataTable Dt;

      try
      {
        switch (QT)
        {
          case QueryType.ALL:
            Dt = ALOM.doQueryAll(ParameterList);
            break;
          case QueryType.CODE:
            Dt = ALOM.doQueryByCode(ParameterList);
            break;
          case QueryType.ID:
            Dt = ALOM.doQueryByID(ParameterList);
            break;
          case QueryType.Custom:
            Dt = ALOM.doQueryByFind(ParameterList);
            break;
          case QueryType.QueryAllDel:
            Dt = ALOM.doQueryAllDel(ParameterList);
            break;
          case QueryType.QryFileForSLP:
            Dt = ALOM.doQueryLikeForSLP(ParameterList); 
            break;
          default:
            Dt = new DataTable();
            break;
        }

        return Dt;
      }
      catch (Exception ex)
      {
        throw GetNewException(ex);
      }
    }
예제 #2
0
    /// <summary>
    /// 基本表單新增BCO
    /// </summary>
    /// <param name="ParameterList">輸入變數</param>
    /// <param name="RootDBT">是否有主交易,無主交易輸入null</param>
    /// <returns>回傳影響筆數</returns>
    public int CreateDisParameter(ArrayList ParameterList, DbTransaction RootDBT)
    {
      int PID = 0;
      bool IsRootTranscation = false;

      try
      {
        VDS_ALO_PARAM_DBO ALOM = new VDS_ALO_PARAM_DBO(ref USEDB);

        //判斷是否有傳入Root Transcation 
        IsRootTranscation = (RootDBT == null) ? true : false;

        #region 啟動交易或指定RootTranscation

        if (IsRootTranscation)
        {
          //獨立呼叫啟動Transcation
          Conn = USEDB.CreateConnection();
          Conn.Open();
          DBT = Conn.BeginTransaction();
        }
        else
        {
          DBT = RootDBT;
        }

        #endregion

        PID = ALOM.doCreate(ParameterList, DBT);

        #region 交易成功

        if (IsRootTranscation)
        {
          //獨立呼叫Transcation成立
          DBT.Commit();
        }

        #endregion

        return PID;
      }
      catch (Exception ex)
      {
        #region 交易失敗

        if (IsRootTranscation)
        {
          //獨立呼叫Transcation失敗
          DBT.Rollback();
        }

        #endregion

        throw GetNewException(ex);
      }
      finally
      {
        #region 判斷是否關閉交易連線

        if (IsRootTranscation)
        {
          //獨立呼叫Transcation,關閉連線
          if (Conn.State == ConnectionState.Connecting)
          {
            Conn.Close();
          }
        }

        #endregion

      }
    }