Exemplo n.º 1
0
        /// <summary>
        /// 根据存储过程获取DataTable,参数的修改会被返回
        /// </summary>
        /// <param name="ProcName"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        public DataTable GetTableByProc(string ProcName, ref CmdParameter[] paras)
        {
            OracleParameter[] pas = CFunctions.ConvertToOraParameter(paras);
            DataTable         dt  = new DataTable();;

            using (OracleConnection conn = new OracleConnection(strConn))
            {
                using (OracleDataAdapter da = new OracleDataAdapter(ProcName, conn))
                    try
                    {
                        da.SelectCommand.CommandType = CommandType.StoredProcedure;
                        if (pas != null)
                        {
                            da.SelectCommand.Parameters.AddRange(pas);
                        }
                        da.Fill(dt);
                        dt.TableName = ProcName;
                        paras        = CFunctions.RecoverParameter(pas);
                    }
                    catch (Exception ex)
                    {
                        CFunctions.HandleException(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                        throw (ex);
                    }
            }
            return(dt);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据存储过程获取DataTable,参数的修改会被返回
        /// </summary>
        /// <param name="ProcName"></param>
        /// <param name="parms"></param>
        /// <returns></returns>
        public DataTable GetTableByProc(string ProcName, ref CmdParameter[] parms)
        {
            SqlParameter[] pas = CFunctions.ConvertToSqlParameter(parms);
            DataTable      dt  = new DataTable();;

            using (SqlConnection conn = new SqlConnection(strConn))
            {
                using (SqlDataAdapter da = new SqlDataAdapter(ProcName, conn))
                {
                    try
                    {
                        da.SelectCommand.CommandType = CommandType.StoredProcedure;
                        if (pas != null)
                        {
                            da.SelectCommand.Parameters.AddRange(pas);
                        }
                        dt.TableName = ProcName;
                        da.Fill(dt);
                        da.SelectCommand.Parameters.Clear();
                    }
                    catch (Exception ex)
                    {
                        CFunctions.HandleException(System.Reflection.MethodBase.GetCurrentMethod().Name + ":" + ProcName, ex);
                        throw (ex);
                    }
                    try
                    {
                        conn.Open();
                        SqlCommand cmd = new SqlCommand();
                        cmd.Connection  = conn;
                        cmd.CommandText = ProcName;
                        cmd.CommandType = CommandType.StoredProcedure;
                        foreach (SqlParameter sp in pas)
                        {
                            cmd.Parameters.Add(sp);
                        }

                        cmd.ExecuteNonQuery();

                        for (int i = 0; i < pas.Length; i++)
                        {
                            pas[i] = cmd.Parameters[i];
                        }
                        parms = CFunctions.RecoverParameter(pas);
                    }
                    catch (Exception ex) {
                        CFunctions.HandleException(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                        // throw (ex);
                    }
                }
            }
            return(dt);
        }