TG.WXCRM.V4/DAL/QH/AccountApply_DAL.cs

56 lines
2.3 KiB
C#

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();
}
}
}
}
}