社区
C#
帖子详情
DataSet 中的TableAdapter如何开启事务
nirehs
2009-06-15 10:52:01
用VS2008的DataSet连接access,TableAdapter如何开启事务呢?
...全文
255
8
打赏
收藏
DataSet 中的TableAdapter如何开启事务
用VS2008的DataSet连接access,TableAdapter如何开启事务呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nirehs
2009-06-16
打赏
举报
回复
怎么用TableAdapter事务处理,上面有句话打错了。
nirehs
2009-06-16
打赏
举报
回复
可能是我没说清楚吧,事务我以前开发java时,经常用,所以,我们不讨论事务是什么的问题,现在的问题是,怎么用Transaction事务处理。
为啦说明更详细,我把dataset的生成过程写下来。
传统的dataset一般是这样
C# code
//SQL命令对象
SqlCommand selcmd = new SqlCommand();
selcmd.Connection = conn;
selcmd.CommandText ="SELECT RegionID, RegionDescription FROM Region";
//SQ适配器命令执行对象
SqlDataAdapter da = new SqlDataAdapter();
//命令对象的SelectCommand方法只能执行select语句
da.SelectCommand = selcmd;
//记录集,用于接收记录
DataSet ds = new DataSet();
// SQL命令执行对象执行sql命令。将返回记录写入记录集。
da.Fill(ds);
// 填充了数据就可以关闭连接了
conn.Close();
adapter的方法,是我们写在程序中的。
而使用vs管理的dataset。每张表都会自动生成两个类1 dataset类 2 adapters类。
创建过程如下
1 我们先新建一个数据源
2 工程中新建一个数据集DataSet
3 在数据集DataSet的设计视图上将数据源中需要使用的表拖入。这样我们就得到啦一个独立的数据访问层了。这个数据集DataSet包含了两个类。一个类是数据模型类,它提供啦数据表的实体类。另一个是Adapters类,它提供了数据库的访问方法。
4 使用时我们要先实例化这两个类,值得注意的是它们不在同一个命名空间下,DataSet位于当前工程命名空间下,所以它可以直接实例化。而Adapters在当前命名空间的子空间下的[DataSet1Table]Adapters中。每一张表对应一个Adapters类。
使用时代码如下:
C# code //实例化数据集,注意不是dataset,他是vs自动生成的。
aopDataSetTable ds = new aopDataSetTable ();
//实例化orders表的Adapter类
OrdersTableAdapter ot = new OrdersTableAdapter();
//取数据库数据填充入数据集orders表中。
ot.Fill(ds.Orders);
//数据集绑定数据网格
dataGridView1.DataSource = ds.Orders;
我们可以发现vs生成的dataset与传统的dataset相比要简单很多。但是它的属性与传统的也不一样,所以不能使用传统的事物管理。但是要怎么来管理事物呢?
gjw_8888
2009-06-16
打赏
举报
回复
1楼已经说的很清楚了啊,事务与connection类相关,与TableAdapter没啥关系
taoxinwan123
2009-06-16
打赏
举报
回复
引用3楼的代码:
DbTransaction tran = null;
DbConnection con = null;
try
{
//con=new 连接;
tran = con.BeginTransaction();
//做一些数据库操作
string sql="sql语句";
sqlcommand cmd=new sqlcommand(con,sql);
cmd.transaction=tran;
//指定执行的事务
//提交
tran.Commit();
}
catch
{
if (tran != null)
{
//回滚
tran.Rollback();
}
}
finally
{
if (tran != null)
{
tran.Dispose();
}
if(con!=null)
con.Close();
}
angel6709
2009-06-16
打赏
举报
回复
Transaction(事务)就是一连串工作的最小单位,比他大一点的就是Session(会话)比如从ATM业务就是一个Session,你先输入密码-验证之后,提款(从你按下提款按钮,到你拿到钱为止,这个过程不能再分割了。。他就是个事务)你提完款之后可能还要看看余额。。。看看余额就是令一个事务。。。而ATM提供的所有服务都放在一次会话中(从你输入密码验证到你把银行卡取出)。
angel6709
2009-06-16
打赏
举报
回复
DbTransaction tran = null;
DbConnection con = null;
try
{
//con=new 连接;
tran = con.BeginTransaction();
//做一些数据库操作
//提交
tran.Commit();
}
catch
{
if (tran != null)
{
//回滚
tran.Rollback();
}
}
finally
{
if (tran != null)
{
tran.Dispose();
}
if(con!=null)
con.Close();
}
nirehs
2009-06-16
打赏
举报
回复
什么是事务,我很清楚
我是说怎么用TableAdapter这个类提供的方法开启事务
feiyun0112
2009-06-16
打赏
举报
回复
不是TableAdapter开事务,是connection
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
对强类型
DataSet
的
Table
Adapter
使用现有存储过程67
在前一篇教程
中
, 我们了解了如何配置 强类型
DataSet
的
Table
Adapter
, 使其使用存储过程 ( 而非 ad-hoc SQL 语句 ) 来访问数据。我们还特别研究了如何使
Table
Adapter
向导自动创建这些存储过程。在将一个...
在Data
Adapter
中
开启
事务
在ADO.NET 2.0
中
引入了strong typed
table
adapter
,强化了strong typed
dataset
的设计视图,使用非常方便,但是在实际运用当
中
,还是遇到了一些麻烦,比如怎么在多个
table
adapter
之间
开启
事务
,由于
table
adapter
...
Scott Mitchell 的ASP.NET 2.0数据教程之67:在
Table
Adapter
s里创建新的存储过程
在
Table
Adapter
向导里定义的SELECT查询返回Products表里的列,这些列又作为存储过程的输入参数并运用到INSERT statement
中
.紧接着的是一个SELECT查询,返回Products表里最新添加的记录的各列的值(包括ProductID)。当...
.net MySQL事物_在ASP.NET 2.0
中
操作数据之六十一:在
事务
里对数据库修改进行封装...
BeginTransaction()方法打开了
Table
Adapter
的内部的SqlConnection(如果需要的话),
开启
事务
并赋值给Transaction属性,并将
事务
分配(attache)给SqlData
Adapter
的SqlCommand objects对象.CommitTransaction()和 ...
Scott Mitchell 的ASP.NET 2.0数据教程之63:在
事务
里对数据库修改进行封装
本文英文原版与代码下载:http://www.asp.net/learn/dataaccess/tutorial63cs.aspx?tabid=6363章:在
事务
里对数据库修改进行封装导言:正如我们在第16章《概述添加、更新、删除数据》里探讨的那样,GridView控件内建...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章