C#实现数据库事务处理示例代码
2007-04-20 19:13
771 查看
最近做了个小项目,其中要对两个表同时进行插入insert操作处理,而且对它们的插入操作要么全部成功,要么都插入失败,否则只插入一个表成功会引起数据库的不一致。很显然,这是一个事务处理(transcation),要么commit成功,要么则rollback。在代码中,我利用的是C#中提供的Transcation类来实现,代码如下:
private void btn_submit_Click(object sender, System.EventArgs e)
...{
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cnn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand();
SqlTransaction transaction = null;
try
...{
cnn.Open();
// 先插入分店shop表,再插入经理Manager表,并将其作为一个事务进行处理
transaction = cnn.BeginTransaction();
cmd.Transaction = transaction;
cmd.Connection = cnn;
// 插入分店shop表
string shopstr = "insert into shop values('" + tbx_shopid.Text + "','" + tbx_shopname.Text + "','" + tbx_shopaddress.Text + "','" + tbx_shopphone.Text + "')";
cmd.CommandType = CommandType.Text;
cmd.CommandText = shopstr;
cmd.ExecuteNonQuery();
// 插入经理Manager表
string managerstr = "insert into manager values('" + tbx_managerid.Text + "','" + tbx_managerpassword.Text + "','" + tbx_managername.Text + "','" + tbx_shopid.Text + "')";
cmd.CommandType = CommandType.Text;
cmd.CommandText = managerstr;
cmd.ExecuteNonQuery();
// 提交事务
transaction.Commit();
lbl_msg.Text = "添加分店操作成功";
}
catch(Exception ex)
...{
lbl_msg.Text = "添加分店操作失败";
transaction.Rollback();
}
finally
...{
cnn.Close();
}
}
private void btn_submit_Click(object sender, System.EventArgs e)
...{
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cnn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand();
SqlTransaction transaction = null;
try
...{
cnn.Open();
// 先插入分店shop表,再插入经理Manager表,并将其作为一个事务进行处理
transaction = cnn.BeginTransaction();
cmd.Transaction = transaction;
cmd.Connection = cnn;
// 插入分店shop表
string shopstr = "insert into shop values('" + tbx_shopid.Text + "','" + tbx_shopname.Text + "','" + tbx_shopaddress.Text + "','" + tbx_shopphone.Text + "')";
cmd.CommandType = CommandType.Text;
cmd.CommandText = shopstr;
cmd.ExecuteNonQuery();
// 插入经理Manager表
string managerstr = "insert into manager values('" + tbx_managerid.Text + "','" + tbx_managerpassword.Text + "','" + tbx_managername.Text + "','" + tbx_shopid.Text + "')";
cmd.CommandType = CommandType.Text;
cmd.CommandText = managerstr;
cmd.ExecuteNonQuery();
// 提交事务
transaction.Commit();
lbl_msg.Text = "添加分店操作成功";
}
catch(Exception ex)
...{
lbl_msg.Text = "添加分店操作失败";
transaction.Rollback();
}
finally
...{
cnn.Close();
}
}
相关文章推荐
- C#实现数据库事务处理示例代码
- C#实现数据库事务处理示例代码
- C#实现数据库事务处理的简单示例代码
- C#实现数据库事务处理的简单示例代码
- C#实现数据库事务处理示例代码
- Java中数据库事务处理的实现-JSP教程,Java技巧及代码
- ThinkPHP实现事务回滚示例代码(附加:PDO的事务处理)
- c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具
- c#实现数据库事务示例分享
- 转载:Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)
- 有关《模式——工程化实现及扩展(设计模式C# 版)》一书中多个章节示例代码中缺少空格的公告
- 关于C# Math 处理奇进偶不进的实现代码
- ThinkPHP实现事务回滚示例代码
- C#使用互斥量(Mutex)实现多进程并发操作时多进程间线程同步操作(进程同步)的简单示例代码及使用方法
- C#实现人民币大写转换示例代码
- C#事务处理简明示例
- C#摄像头实现拍照功能的简单代码示例
- 利用C#实现最基本的小说爬虫示例代码
- c#将Excel数据导入到数据库的实现代码
- 在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例