using System; using System.Data; using System.Data.OracleClient; using System.Linq; using WX.CRM.Common; namespace WX.CRM.DAL.QH { public class AccountApply_DAL { public DataTable GetRecordByEID(decimal? v_recordid, decimal v_eid, string v_resid, ref Pager pager) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); OracleTransaction trans = conn.BeginTransaction(); try { OracleParameter[] p2 = { v_recordid.HasValue? new OracleParameter(){ ParameterName = "v_recordid", OracleType = OracleType.Number,Value = v_recordid.Value }: new OracleParameter(){ ParameterName = "v_recordid", OracleType = OracleType.Number,Value = DBNull.Value }, new OracleParameter(){ ParameterName = "v_eid", OracleType = OracleType.Number, Value = v_eid}, new OracleParameter(){ ParameterName = "v_resid", OracleType = OracleType.VarChar, Value = v_resid}, new OracleParameter(){ ParameterName = "v_pageIndex", OracleType = OracleType.Number, Value = pager.page}, new OracleParameter(){ ParameterName = "v_pageSize", OracleType = OracleType.Number, Value = pager.rows}, new OracleParameter(){ ParameterName="v_total",OracleType=OracleType.Number,Direction = ParameterDirection.Output}, new OracleParameter(){ ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output } }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_QH_RECORD.GetRecordByEID", p2).Tables[0]; pager.totalRows = int.Parse(string.Format("{0}", p2.Single(m => m.ParameterName == "v_total").Value)); trans.Commit(); return ds; } catch (Exception) { trans.Rollback(); throw; } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } } } } }