c# 怎么在代码里面执行数据库事务

c#怎么在代码里面执行数据库事务全过程... c# 怎么在代码里面执行数据库事务全过程 展开
 我来答
匿名用户
2013-09-19
展开全部
OracleTransaction类的概述
应用程序通过针对OracleConnection对象调用 BeginTransaction 来创建OracleTransaction对象。对OracleTransaction对象执行与该事务关联的所有后续操作(例如提交或中止该事务)。OracleTransaction的成员主要有:
属性:
Connection,指定与该事务关联的OracleConnection对象;
IsolationLevel,指定该事务的IsolationLevel;枚举类型,用于对事物的锁定,取值有Chaos、ReadCommited、ReadUncommited、RepeatableRead、Serializable、Unspecified。
方法:
Commit,提交SQL数据库事务;
Rollback , 从挂起状态回滚事务;

第一个示例:
public void 函数名称()
{
string strUpdateSql1 = "update 表名 set XH='...' where XH='...' and LCGZ_ID='...';
string strUpdateSql2 = "update 表名 set XH='...' where BZGZ_ID='...';
OracleConnection conn = new OracleConnection();
conn.ConnectionString = "数据库连接字符串";
conn.Open();
OracleTransaction updateProcess = conn.BeginTransaction();try
{
OracleCommand comm1 = conn.CreateCommand();
comm1.CommandText = strUpdateSql1;
comm1.Transaction = updateProcess;
comm1.ExecuteNonQuery(); OracleCommand comm2 = conn.CreateCommand();
comm2.CommandText = strUpdateSql2;
comm2.Transaction = updateProcess;
comm2.ExecuteNonQuery(); updateProcess.Commit();
}
catch()
{
updateProcess.Rollback();
}
finally
{
conn.Close();
}
}

第二个示例:
public static bool 函数名2(int fID)
{
OracleConnection conn = new OracleConnection();
conn.ConnectionString = "数据库连接字符串";
conn.Open();
OracleTransaction deleteProcess = conn.BeginTransaction(); try
{
ArrayList alObjects = GetObjects();
foreach(object o in alObjects)
{
OracleCommand tmpComm = conn.CreateCommand();
tmpComm.Transaction = deleteProcess;
tmpComm.CommandText = "delete from 表1名 where BZGZ_ID="+o.ID;
tmpComm.ExecuteNonQuery(); OracleCommand tmpComm2 = conn.CreateCommand();
tmpComm2.Transaction = deleteProcess;
tmpComm2.CommandText = "delete from 表2名 where BZGZ_ID="+o.ID;
tmpComm2.ExecuteNonQuery();
}
OracleCommand comm = conn.CreateCommand();
comm.Transaction = deleteProcess;
comm.CommandText = "delete from 表3名 where LCGZ_ID="+fID;
comm.ExecuteNonQuery(); deleteProcess.Commit();
return true;
}
catch()
{
deleteProcess.Rollback();
return false;
}
finally
{
conn.Close();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式