Exemplo n.º 1
0
 /// <summary>
 /// 执行一存储过程返回数据集 返回多个值
 /// <param name="procName">存储过程名称</param>
 /// <param name="ht">Hashtable</param>
 /// <param name="rs">Hashtable</param>
 public DataSet GetDataSetProcReturn(string procName, Hashtable ht, ref Hashtable rs)
 {
     try
     {
         dbCommand = this.GetInstance().GetStoredProcCommand(procName);
         DbCommon.AddMoreParameter(db, dbCommand, ht);
         DataSet ds = db.ExecuteDataSet(dbCommand);
         rs = new Hashtable();
         foreach (string key in ht.Keys)
         {
             if (key.StartsWith("OUT_"))
             {
                 string tmp = key.Remove(0, 4);
                 object val = db.GetParameterValue(dbCommand, ":" + tmp);
                 rs[key] = val;
             }
         }
         return(ds);
     }
     catch (Exception e)
     {
         DbLog.WriteException(e);
         return(null);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 调用存储过程返回指定消息
        /// </summary>
        /// <param name="procName">存储过程名称</param>
        /// <param name="ht">Hashtable</param>
        /// <param name="msg">OutPut rs</param>
        public int ExecuteByProcReturn(string procName, Hashtable ht, ref Hashtable rs)
        {
            int num = 0;

            try
            {
                DbCommand storedProcCommand = this.GetInstance().GetStoredProcCommand(procName);
                DbCommon.AddMoreParameter(db, storedProcCommand, ht);
                using (DbConnection connection = this.db.CreateConnection())
                {
                    connection.Open();
                    dbTransaction = connection.BeginTransaction();
                    try
                    {
                        num = this.db.ExecuteNonQuery(storedProcCommand, dbTransaction);
                        dbTransaction.Commit();
                    }
                    catch
                    {
                        num = -1;
                        dbTransaction.Rollback();
                    }
                    finally
                    {
                        connection.Close();
                        connection.Dispose();
                        dbTransaction.Dispose();
                    }
                }
                rs = new Hashtable();
                foreach (string str in ht.Keys)
                {
                    if (str.StartsWith("OUT_"))
                    {
                        object parameterValue = this.db.GetParameterValue(storedProcCommand, ":" + str.Remove(0, 4));
                        rs[str] = parameterValue;
                    }
                }
            }
            catch (Exception e)
            {
                DbLog.WriteException(e);
            }
            return(num);
        }