C#中什么时候使用数据库事务事件
我想问问各位高手,什么时候,什么情况下我该使用数据库事务呢?SqlTransactionmyt=conn.BeginTransaction();就是什么时候使用begin...
我想问问各位高手,什么时候,什么情况下我该使用数据库事务呢?
SqlTransaction myt = conn.BeginTransaction();
就是什么时候使用begin transcation开始事务
commit transcation 提交事务
rollback transcation 回滚事务
save transcation 保存事务
先谢谢大家了!请帮帮我!谢谢! 展开
SqlTransaction myt = conn.BeginTransaction();
就是什么时候使用begin transcation开始事务
commit transcation 提交事务
rollback transcation 回滚事务
save transcation 保存事务
先谢谢大家了!请帮帮我!谢谢! 展开
2个回答
展开全部
通常当你要更新多条关联SQL的时候,应该使用事务
举个例子:
银行转帐,从A划帐到B的帐户,
先运行一条SQL,扣除A帐户100元;
再运行一条SQL,增加B帐户100元
这2条SQL要么都执行成功,要么都不成功,
如果只有一条成功就会出现问题
这里就应该使用事务了,我写的一个例子:
参数是一个数组,保存了要执行的SQL
public bool ExecuteNone(string[] sql)
{
bool result;
OleDbConnection con = this.GetConn();
OleDbTransaction trans = con.BeginTransaction();//开始数据库事务
OleDbCommand dbComm = new OleDbCommand();
dbComm.Connection = con;
dbComm.Transaction = trans;
try
{
for (int i=0;i<sql.Length;i++)
{//执行数组中的SQL
if (sql[i] == null || sql[i] == "")
{//数组中有一个空项时跳过
continue;
}
dbComm.CommandText = sql[i];
dbComm.ExecuteNonQuery();
}
trans.Commit();//全部SQL执行成功后,提交数据库事务
result = true;
}
catch (System.Exception)
{
trans.Rollback();//如果出错,回滚数据库事务
result = false;
}
this.CloseConn(con);
return result;
}//end ExecuteNone
举个例子:
银行转帐,从A划帐到B的帐户,
先运行一条SQL,扣除A帐户100元;
再运行一条SQL,增加B帐户100元
这2条SQL要么都执行成功,要么都不成功,
如果只有一条成功就会出现问题
这里就应该使用事务了,我写的一个例子:
参数是一个数组,保存了要执行的SQL
public bool ExecuteNone(string[] sql)
{
bool result;
OleDbConnection con = this.GetConn();
OleDbTransaction trans = con.BeginTransaction();//开始数据库事务
OleDbCommand dbComm = new OleDbCommand();
dbComm.Connection = con;
dbComm.Transaction = trans;
try
{
for (int i=0;i<sql.Length;i++)
{//执行数组中的SQL
if (sql[i] == null || sql[i] == "")
{//数组中有一个空项时跳过
continue;
}
dbComm.CommandText = sql[i];
dbComm.ExecuteNonQuery();
}
trans.Commit();//全部SQL执行成功后,提交数据库事务
result = true;
}
catch (System.Exception)
{
trans.Rollback();//如果出错,回滚数据库事务
result = false;
}
this.CloseConn(con);
return result;
}//end ExecuteNone
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询