C# 獲取 oracle 存儲過程輸出參數值


  public bool QueueToRegister(string appointsId, string enrolDoctor)
        {
            using (OleDbConnection conn = new OleDbConnection(DBHelper.Instance.ConnectionStr))
            {
                conn.Open();
                OleDbCommand cmd = conn.CreateCommand();
                try
                {
                    //插入號源屬性
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "PROC_APPOINTTOENROL";
                    cmd.Parameters.Add("@p_APPOINTSID", OleDbType.VarChar).Value = appointsId;
                    cmd.Parameters.Add("@p_ENROLDOCTOR", OleDbType.VarChar).Value = enrolDoctor;
                    cmd.Parameters.Add("@p_IsUseCallCode", OleDbType.VarChar).Value = PubVariable.Instance.IsUseCallCode;
                    cmd.Parameters.Add("@p_AreaName", OleDbType.VarChar).Value = PubVariable.Instance.AreaName;
                    cmd.Parameters.Add("@p_result", OleDbType.Integer).Value = -1;
                    cmd.Parameters["@p_result"].Direction = ParameterDirection.InputOutput;

                    if (cmd.ExecuteNonQuery() > 0)
                    {
                        var aa = cmd.Parameters["@p_result"].Value.ToString();
                        return true;
                    }
                }
                catch { return false; }
                finally
                {
                    if (conn.State != ConnectionState.Closed) conn.Close();
                }
            }
            return false;
        }

  

using (OleDbConnection conn = new OleDbConnection(str))
            {
                OleDbTransaction tran = null;
                conn.Open();
                OleDbCommand cmd = conn.CreateCommand();
                tran = conn.BeginTransaction(IsolationLevel.ReadCommitted);
                cmd.Transaction = tran;
                try
                {
                    //插入號源屬性
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "PROC_APPOINTTOENROL";
                    cmd.Parameters.Add("@p_APPOINTSID", OleDbType.VarChar).Value = appointsId;
                    cmd.Parameters.Add("@p_ENROLDOCTOR", OleDbType.VarChar).Value = enrolDoctor;
                    cmd.Parameters.Add("@p_IsUseCallCode", OleDbType.VarChar).Value = isUseCallCode;
                    cmd.Parameters.Add("@p_AreaName", OleDbType.VarChar).Value = areaName;
                    cmd.Parameters.Add("@p_result", OleDbType.Integer).Value = -1;
                    cmd.Parameters["@p_result"].Direction = ParameterDirection.InputOutput;
                   
                    if (cmd.ExecuteNonQuery() > 0)
                    {
                        string result = cmd.Parameters["@p_result"].Value.ToString();
                        log.WriteLogs("QueueToRegister  return  p_result:", "返回結果:", result);
                        if (result.Trim() != "1") return false;

                        tran.Commit();
                        log.WriteLogs("執行QueueToRegister:", "執行成功", ofdepart);
                        return true;
                    }
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    log.WriteLogs("執行QueueToRegister:", "異常", ex.ToString());
                    return false;
                }
                finally
                {
                    if (conn.State != ConnectionState.Closed) conn.Close();
                }
            }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM