利用C#事务处理对数据库进行多重操

本文介绍了一种使用C#进行数据库事务处理的方法,确保多个数据库操作的原子性。通过示例代码展示了如何在遇到错误时回滚所有已执行的操作。
有A B C 三个数据库操作语句,利用C#事务处理进行多重操作,如果任何一个语句发生问题,则所有语句都不执行。

 

 

C# code

SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlCnn;
sqlCmd.Transaction = sqlCnn.BeginTransaction(); //完成事务处理的前期准备工作

try
{
//将用户注册的数据写入数据库
string sqlCmd1 = "insert into User_Login (user_id,user_pwd) values('" + User_ID + "','" + User_PWD + "')";
string sqlCmd2 = "insert into User_Data_Basic values('" + User_ID + "','" + User_Name + "','" + User_Sex + "'," + User_Age_Year + "," + User_Age_Month + "," + User_Age_Day + ",'','','','','')";
string sqlCmd3 = "insert into user_data_comunication (user_id) values ('" + User_ID + "')";
string sqlCmd4 = "insert into user_data_like (user_id) values ('" + User_ID + "')";
string sqlCmd5 = "insert into user_data_schooldata (user_id) values ('" + User_ID + "')";
//string sqlCmd6 = "insert into user_data_status (user_id,user_status_date) values ('" + User_ID + "','" + System.DateTime.Now + "')";

string[] SQLstringList = { sqlCmd1, sqlCmd2, sqlCmd3, sqlCmd4, sqlCmd5 };
for (int i = 0; i < SQLstringList.Length; i++)
{
string SQLstr = SQLstringList[i].ToString();
if (SQLstr.Trim().Length > 1)
{
sqlCmd.CommandText = SQLstr;
sqlCmd.ExecuteNonQuery();
}
}
sqlCmd.Transaction.Commit();
}
catch (Exception exe)
{
sqlCmd.Transaction.Rollback();
flag = false;
//this.FinalCheck.Text = exe.Message.ToString();
}
finally
{
//关闭数据库
sqlCnn.Close();
}

转载于:https://www.cnblogs.com/chenbg2001/archive/2010/04/04/1704120.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值