您的位置:首页 > 编程语言 > C#

C#中实现Transaction事务处理

2010-09-28 13:27 423 查看
嗯,C#中处理transaction事务是前天偶然在一个视频教程中看到的。自己的理解就是:事务允许同时执行多条SQL语句,如果其中一条执行失败则会把之前执行的语句撤销。纯属个人见解。

在网络上搜索到的比较容易理解的定义:事务(Transaction)是并发控制的单位,是用户定义的一個操作序列。這些操作要么都做,要么都不做,是一個不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。

还是例子比较直接:

public void DbTest()
{
//数据库连接字符串
string connstr = "server='LUCAS'; database='ClassmatesRecord'; uid='sa'; pwd='198999'";
//command语句
string strcmd1="insert personalmessages (name,sex,cellphone,telephone,QQ) values ('测试','男','1234567890','1234567','540593854')";
string strcmd2 = "update personalmessages set name='老师' where id=82";
//建立连接
SqlConnection sqlconn = new SqlConnection(connstr);
//创建执行SQL语句的对象
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlconn;
//创建事务
SqlTransaction sqltran;
//打开连接
sqlconn.Open();
//开始事务
sqltran = sqlconn.BeginTransaction();
//为一个即将发生的事务指派对象
cmd.Transaction = sqltran;
try
{
//执行SQL语句
cmd.CommandText = strcmd1;
int flag1 = cmd.ExecuteNonQuery();
cmd.CommandText = strcmd2;
int flag2 = cmd.ExecuteNonQuery();
//提交事务
sqltran.Commit();
if (flag1 > 0&&flag2>0)
{
MessageBox.Show("SQL语句执行成功");
}
}
catch (Exception)
{
//事务回滚
sqltran.Rollback();
}
finally
{
//善后工作
cmd.Dispose();
sqlconn.Close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: