oracle 通用事务使用
2024-08-28 02:06:51
private void dothing()
{ OracleConnection con = DBHelperOracle.init(); OracleTransaction tran = con.BeginTransaction(); try
{ DBHelperOracle.ExecuteNonQuery(tran, CommandType.Text, @"
update xxxxxx",
null);
DataTable dt = DBHelperOracle.ExecuteTable(tran, CommandType.Text, @"selectxxxxxx", null); DBHelperOracle.ExecuteNonQuery(tran, CommandType.Text, @"
update t0070_enterprise set C0047_SECRET_CODE='1' where c0070_enterprise_code ='370682006' and c0003_year=2006",
null);
dt = DBHelperOracle.ExecuteTable(tran, CommandType.Text, @"select a.C0047_SECRET_CODE from t0070_enterprise a where a.c0070_enterprise_code ='370682006' and a.c0003_year=2006", null); tran.Commit(); } catch
{ tran.Rollback(); } finally
{ if (con.State == ConnectionState.Open)
{
con.Close(); }
}
} public static OracleConnection init()
{
try
{
conn = new OracleConnection(connstr);
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
}
catch (Exception e)
{
throw new Exception(e.Message.ToString());
}
return conn;
} public static int ExecuteNonQuery(OracleTransaction trans, CommandType cmdType, string cmdText, params OracleParameter[] CommandParams)
{ OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, CommandParams);
/*if (cmdType == CommandType.StoredProcedure)
{
cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery(); val = (int)cmd.Parameters["@RETURN_VALUE"].Value;
}
else
if (cmdType==CommandType.Text)
{
val = cmd.ExecuteNonQuery();
}*/
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear(); return val;
} public static DataTable ExecuteTable(OracleTransaction trans, CommandType cmdType, string cmdText, params OracleParameter[] CommandParams)
{
DataTable temptable = new DataTable();
OracleCommand cmd = new OracleCommand(); PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, CommandParams);
OracleDataAdapter da = new OracleDataAdapter(cmd);
OracleCommandBuilder scb = new OracleCommandBuilder(da);
da.Fill(temptable);
cmd.Parameters.Clear(); return temptable; } private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, CommandType cmdType, string cmdText, OracleParameter[] cmdParms)
{ if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (OracleParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
最新文章
- JS-改变页面的颜色(三)
- C99标准的新特性
- shell 实例收集
- Docker系列(五)OVS+Docker网络打通示例
- setPixel抛出java.lang.IllegalStateException
- UITabbar的常用属性
- JavaScript(四)---- 函数
- 201521123003《Java程序设计》第8周学习总结
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
- 图像识别与OpenCV——Mat类与Mat_类的内存管理
- JS媒体查询
- 使用element-ui 遇到的问题
- OSGI的WEB开发环境搭建
- mysql 1267 error
- LeetCode 81 Search in Rotated Sorted Array II(循环有序数组中的查找问题)
- 笔记(二)TabLayout + ViewPager + FragmentPagerAdapter 组合用法
- [译]Quartz 框架 教程(中文版)2.2.x 之第二课 Quartz API,Jobs和Triggers简介
- LINUX gcc安装rpm包顺序
- MySQL,sqlalchemy