程序使用事务操作oracle多表的方法案例
2010-11-26 13:56
633 查看
public int JieKou_SongPan(out string sError, int v_splx,string s_spyinhangzh, DataTable Dtlxsp, DateTime v_date, string v_account, int i_wenjiangsbh, int _curBankID, Entity.Common.ParameterList parameterlist)
{
using (OracleConnection conn = new OracleConnection(Platform.Configuration.ConfigHelper.BusinessConnString))
{
conn.Open();
OracleTransaction tran = conn.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
YW_WENJIANSJ_YWMXProcess yw_wenjiansj_ywmxp = new YW_WENJIANSJ_YWMXProcess();//业务文件数据业务明晰处理实例
int i_wenjianbh = 0;//文件编号
string s_wenjianbh;
int totalcount = 0;//成功记录个数
_spHelper.COMMON_REQUESTID("YW_WENJIANSJ", "I_WENJIANBH", null, 1, out s_wenjianbh, tran);
i_wenjianbh = new Utility().ToInt(s_wenjianbh).Value;
YW_WENJIANSJ_YWMX yw_wenjiansj_ywmx = new YW_WENJIANSJ_YWMX();//业务文件数据明细_业务明细
if (Dtlxsp != null)
{
for (int i = 1; i <= Dtlxsp.Rows.Count; i++)
{
yw_wenjiansj_ywmx.ID = 0;
yw_wenjiansj_ywmx.I_WENJIANBH = i_wenjianbh;
yw_wenjiansj_ywmx.I_MXBH = i;
yw_wenjiansj_ywmx.I_FEEID = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_FEEID"].ToString(), 0).Value;//feeid
yw_wenjiansj_ywmx.S_CID = Dtlxsp.Rows[i - 1]["S_CID"].ToString();
yw_wenjiansj_ywmx.I_Y = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_CHAOBIAON"].ToString(), 0).Value;//年
yw_wenjiansj_ywmx.I_M = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_CHAOBIAOY"].ToString(), 0).Value;//月
yw_wenjiansj_ywmx.I_CC = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_CC"].ToString(), 0).Value;//抄次
yw_wenjiansj_ywmx.I_KAIZHANGSL = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_KAIZHANGSL"].ToString(), 0);//开账水量
yw_wenjiansj_ywmx.N_KAIZHANGJE = new Utility().ToDecimal(Dtlxsp.Rows[i - 1]["N_KAIZHANGJE"].ToString(), 0);//开账金额
yw_wenjiansj_ywmx.N_JE = new Utility().ToDecimal(Dtlxsp.Rows[i - 1]["N_JE"].ToString(), 0);//金额
yw_wenjiansj_ywmx.I_KAIHUYH = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_KAIHUYH"].ToString(), 0);//开户银行
yw_wenjiansj_ywmx.S_KAIHUHM = Dtlxsp.Rows[i - 1]["S_KAIHUHM"].ToString();//开户户名
yw_wenjiansj_ywmx.S_YINHANGZH = Dtlxsp.Rows[i - 1]["S_KAIHUZH"].ToString();//银行账号
yw_wenjiansj_ywmx.S_CAOZUOR = LoginInfo.CurrentUser.Account;//操作人
yw_wenjiansj_ywmx.D_CAOZUOSJ = v_date;//操作时间
yw_wenjiansj_ywmx.S_DZ = Dtlxsp.Rows[i - 1]["S_DZ"].ToString();//用水地址
yw_wenjiansj_ywmx.S_KEHUID = Dtlxsp.Rows[i - 1]["S_KEHUID"].ToString();//客户编号
yw_wenjiansj_ywmx.S_ST = Dtlxsp.Rows[i - 1]["S_ST"].ToString();//站点
yw_wenjiansj_ywmx.I_CENEIXH = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_CENEIXH"].ToString()).Value;//册内序号
yw_wenjiansj_ywmx.I_SFFS = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_SFFS"].ToString()).Value;//收费方式
yw_wenjiansj_ywmx.S_KUAIHAO = Dtlxsp.Rows[i - 1]["S_KUAIHAO"].ToString();//块号
yw_wenjiansj_ywmx.S_JH = Dtlxsp.Rows[i - 1]["S_JH"].ToString();//简号
yw_wenjiansj_ywmx.S_HM = Dtlxsp.Rows[i - 1]["S_HM"].ToString();//户名
yw_wenjiansj_ywmx.I_ZHANGWUNY = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_ZHANGWUNY"].ToString()).Value;//账务年月
yw_wenjiansj_ywmx.S_SHUIBIAOTXM = Dtlxsp.Rows[i - 1]["S_SHUIBIAOTXM"].ToString();//水表条形码
yw_wenjiansj_ywmx.S_TUOSHOUHTH = Dtlxsp.Rows[i - 1]["S_TUOSHOUHTH"].ToString();//托收合同号
if (yw_wenjiansj_ywmxp.InsertOrUpdate(yw_wenjiansj_ywmx, tran))
{
totalcount += 1;
}
}
}
int? v_count;
_spHelper.JIEKOU_SPCAOZUO(v_splx, i_wenjianbh, 0, i_wenjiangsbh, v_account, v_date, _curBankID, parameterlist.ToString(),s_spyinhangzh, out v_count, tran);
if (v_count > 0)
{
// 生成文件内容
sError = BuildFile(i_wenjianbh, tran);
if (string.IsNullOrEmpty(sError))
{
tran.Commit();
return i_wenjianbh;
}
else
{
tran.Rollback();
return 0;
}
}
else
{
sError = "130311";
tran.Rollback();
return 0;
}
}
catch(Exception ex)
{
sError = "130312" + ex.ToString();
tran.Rollback();
return 0;
}
}
}
{
using (OracleConnection conn = new OracleConnection(Platform.Configuration.ConfigHelper.BusinessConnString))
{
conn.Open();
OracleTransaction tran = conn.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
YW_WENJIANSJ_YWMXProcess yw_wenjiansj_ywmxp = new YW_WENJIANSJ_YWMXProcess();//业务文件数据业务明晰处理实例
int i_wenjianbh = 0;//文件编号
string s_wenjianbh;
int totalcount = 0;//成功记录个数
_spHelper.COMMON_REQUESTID("YW_WENJIANSJ", "I_WENJIANBH", null, 1, out s_wenjianbh, tran);
i_wenjianbh = new Utility().ToInt(s_wenjianbh).Value;
YW_WENJIANSJ_YWMX yw_wenjiansj_ywmx = new YW_WENJIANSJ_YWMX();//业务文件数据明细_业务明细
if (Dtlxsp != null)
{
for (int i = 1; i <= Dtlxsp.Rows.Count; i++)
{
yw_wenjiansj_ywmx.ID = 0;
yw_wenjiansj_ywmx.I_WENJIANBH = i_wenjianbh;
yw_wenjiansj_ywmx.I_MXBH = i;
yw_wenjiansj_ywmx.I_FEEID = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_FEEID"].ToString(), 0).Value;//feeid
yw_wenjiansj_ywmx.S_CID = Dtlxsp.Rows[i - 1]["S_CID"].ToString();
yw_wenjiansj_ywmx.I_Y = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_CHAOBIAON"].ToString(), 0).Value;//年
yw_wenjiansj_ywmx.I_M = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_CHAOBIAOY"].ToString(), 0).Value;//月
yw_wenjiansj_ywmx.I_CC = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_CC"].ToString(), 0).Value;//抄次
yw_wenjiansj_ywmx.I_KAIZHANGSL = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_KAIZHANGSL"].ToString(), 0);//开账水量
yw_wenjiansj_ywmx.N_KAIZHANGJE = new Utility().ToDecimal(Dtlxsp.Rows[i - 1]["N_KAIZHANGJE"].ToString(), 0);//开账金额
yw_wenjiansj_ywmx.N_JE = new Utility().ToDecimal(Dtlxsp.Rows[i - 1]["N_JE"].ToString(), 0);//金额
yw_wenjiansj_ywmx.I_KAIHUYH = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_KAIHUYH"].ToString(), 0);//开户银行
yw_wenjiansj_ywmx.S_KAIHUHM = Dtlxsp.Rows[i - 1]["S_KAIHUHM"].ToString();//开户户名
yw_wenjiansj_ywmx.S_YINHANGZH = Dtlxsp.Rows[i - 1]["S_KAIHUZH"].ToString();//银行账号
yw_wenjiansj_ywmx.S_CAOZUOR = LoginInfo.CurrentUser.Account;//操作人
yw_wenjiansj_ywmx.D_CAOZUOSJ = v_date;//操作时间
yw_wenjiansj_ywmx.S_DZ = Dtlxsp.Rows[i - 1]["S_DZ"].ToString();//用水地址
yw_wenjiansj_ywmx.S_KEHUID = Dtlxsp.Rows[i - 1]["S_KEHUID"].ToString();//客户编号
yw_wenjiansj_ywmx.S_ST = Dtlxsp.Rows[i - 1]["S_ST"].ToString();//站点
yw_wenjiansj_ywmx.I_CENEIXH = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_CENEIXH"].ToString()).Value;//册内序号
yw_wenjiansj_ywmx.I_SFFS = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_SFFS"].ToString()).Value;//收费方式
yw_wenjiansj_ywmx.S_KUAIHAO = Dtlxsp.Rows[i - 1]["S_KUAIHAO"].ToString();//块号
yw_wenjiansj_ywmx.S_JH = Dtlxsp.Rows[i - 1]["S_JH"].ToString();//简号
yw_wenjiansj_ywmx.S_HM = Dtlxsp.Rows[i - 1]["S_HM"].ToString();//户名
yw_wenjiansj_ywmx.I_ZHANGWUNY = new Utility().ToInt(Dtlxsp.Rows[i - 1]["I_ZHANGWUNY"].ToString()).Value;//账务年月
yw_wenjiansj_ywmx.S_SHUIBIAOTXM = Dtlxsp.Rows[i - 1]["S_SHUIBIAOTXM"].ToString();//水表条形码
yw_wenjiansj_ywmx.S_TUOSHOUHTH = Dtlxsp.Rows[i - 1]["S_TUOSHOUHTH"].ToString();//托收合同号
if (yw_wenjiansj_ywmxp.InsertOrUpdate(yw_wenjiansj_ywmx, tran))
{
totalcount += 1;
}
}
}
int? v_count;
_spHelper.JIEKOU_SPCAOZUO(v_splx, i_wenjianbh, 0, i_wenjiangsbh, v_account, v_date, _curBankID, parameterlist.ToString(),s_spyinhangzh, out v_count, tran);
if (v_count > 0)
{
// 生成文件内容
sError = BuildFile(i_wenjianbh, tran);
if (string.IsNullOrEmpty(sError))
{
tran.Commit();
return i_wenjianbh;
}
else
{
tran.Rollback();
return 0;
}
}
else
{
sError = "130311";
tran.Rollback();
return 0;
}
}
catch(Exception ex)
{
sError = "130312" + ex.ToString();
tran.Rollback();
return 0;
}
}
}
相关文章推荐
- 4.第三单元任务三实训:编写一个类ExceptionTest,在main方法中使用try-catch-finally语句结构实现:在try语句块中,编写两个数相除操作,相除的两个操作数要求程序运行时用
- 使用Oracle ODP.NET 11g的.NET程序发布方法
- C#中增加SQLite事务操作支持与使用方法
- 在Python程序中操作文件之flush()方法的使用教程
- 使用Oracle ODP.NET 11g的.NET程序发布方法
- 数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例
- 编写高质量代码改善C#程序的157个建议[正确操作字符串、使用默认转型方法、却别对待强制转换与as和is]
- Spring 事务操作(银行转账案例),使用spring 对jdbc的支持完成对数据库的操作
- 使用oracle odp.net 11g的.net程序发布方法
- Java如何操作Android的adb shell 之 我自己在程序中的使用方法
- 在Python程序中操作文件之flush()方法的使用教程
- Java如何操作Android的adb shell 之 我自己在程序中的使用方法
- 使用Oracle ODP.NET 11g的.NET程序发布方法
- 使用C#控制台程序操作SQL Serve 的3种基本方法
- Android程序解析XML文件的方法及使用PULL解析XML案例
- ORACLE中对in操作使用变量绑定的方法
- 直接使用SQL操作Oracle空间数据的原理以及配置方法
- Android程序解析XML文件的方法及使用PULL解析XML案例
- 使用JDBC4.0操作Oracle中BLOB类型的数据方法
- 秋天.NET操作IIS两种方法 案例程序