`
ihuashao
  • 浏览: 4544433 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C#实现数据库事务处理示例代码

阅读更多
最近做了个小项目,其中要对两个表同时进行插入insert操作处理,而且对它们的插入操作要么全部成功,要么都插入失败,否则只插入一个表成功会引起数据库的不一致。很显然,这是一个事务处理(transcation),要么commit成功,要么则rollback。在代码中,我利用的是C#中提供的Transcation类来实现,代码如下:
privatevoidbtn_submit_Click(objectsender,System.EventArgse)
...{
stringstrconn=ConfigurationSettings.AppSettings["dsn"];
SqlConnectioncnn
=newSqlConnection(strconn);
SqlCommandcmd
=newSqlCommand();
SqlTransactiontransaction
=null;

try
...{
cnn.Open();


//先插入分店shop表,再插入经理Manager表,并将其作为一个事务进行处理
transaction=cnn.BeginTransaction();
cmd.Transaction
=transaction;
cmd.Connection
=cnn;


//插入分店shop表
stringshopstr="insertintoshopvalues('"+tbx_shopid.Text+"','"+tbx_shopname.Text+"','"+tbx_shopaddress.Text+"','"+tbx_shopphone.Text+"')";
cmd.CommandType
=CommandType.Text;
cmd.CommandText
=shopstr;
cmd.ExecuteNonQuery();

//插入经理Manager表
stringmanagerstr="insertintomanagervalues('"+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(Exceptionex)
...{
lbl_msg.Text
="添加分店操作失败";
transaction.Rollback();
}

finally
...{
cnn.Close();
}

}

分享到:
评论

相关推荐

    c#实现数据库事务示例分享

    代码如下:using System;using System.Data.SqlClient; namespace ExecuteSqlTran{ class Program { class Result { public T data; public string Message; public bool Success; public string StackTrace;...

    使用C#开发的Sqlite数据库创建、操作的源码项目工程

    ④实现了通用的sql语句执行帮助类(包含单条数据的插入、批量插入、事务处理、查询(指定内容查询、分页查询)、更新、删除等操作); ⑤可以直接获取Sqlite数据库中的所有表名称及其表包含的所有列名称; ⑥包含了...

    使用C#开发的Access数据库创建、操作的源码项目工程

    ④实现了通用的sql语句执行帮助类(包含单条数据的插入、批量插入、事务处理、查询(指定内容查询、分页查询)、更新、删除等操作); ⑤可以直接获取Access数据库中的所有表名称及其表包含的所有列名称; ⑥包含了...

    C# 操作SQLite示例源码

    该示例演示C#如何连接SQLite并实现增删改查操作;演示批量操作,须要使用事务处理,才能提高效率;同时加入了SQLDapper框架,代码简练,实用,可以直接放在项目中使用;操作完成后,是完全释放了数据库资源的。该压缩...

    非常实用c#操作Access数据库的例子(application)

    3.嵌套的事务处理,提供了同时执行多个sql语句的事务处理,但不支持嵌套事务。 4.listview的使用,只是利用winform控件来演示数据访问,因此不能作为winform编程的良好示例,例如添加数据时界面并没有很好地更新。

    C#在后台运行操作BackgroundWorker的用法

    耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面(UI)似乎处于停止响应状态。如果需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用BackgroundWorker类方便地解决问题...

    ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)ECG4.3.pdf

    摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于面向对象、分层架构、ORM及反射+工厂设计模式等。支持.Net1.1...

    SqlHelper源码及使用实例

    SqlHelper是非常方便的数据库操作函数,功能强大,使用起来非常简单,免去很多复杂的数据库操作的代码,在多层应用及面向对象开发中都有很多应用 SqlHelper源码带有详细的说明,示例中有原始的示例Sql语句 主要...

    数据库课程设计--仓库管理系统.doc

    逻辑结构设计 10 1.4.1表结构 11 1.4.2数据库设计及完整性约束 14 1.4.3查询示例 16 1.5参考文献 18 1.1.课程设计任务与要求 1.1.1.任务 仓库物资管理系统 问题描述:仓库管理系统的任务是收集、存储、管理仓库货物...

Global site tag (gtag.js) - Google Analytics