VB.NET中事务问题

hatazhou 2006-07-27 10:19:44
vb.net oracle10
用odp.net连接数据库
我写了这么一段代码
dim t as oracletransaction
dim con as oracelconncetion
dim cmd as oralcecommand

con.connectionstring="......"
con.open
cmd.connection=con
t=con.begintransaction
cmd.text="....."
cmd.executenonquery
t.commit或者t.rollback


代码大概是这样子。我测试过事务可以提交或者回滚。
但是我觉得这段代码有问题。
理论上说command和transaction应该邦定,比如用sqloledb连接,可以对command的transaction给值。但是odp.net中command的transaction是只读,不能给值。
我的问题就是:
1.这段代码是否有问题?
2.在odp.net中应该怎么将command和transaction邦定了?
3.tansaction和command是否一定要邦定了?不邦定是否有问题
...全文
308 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hatazhou 2006-08-02
  • 打赏
  • 举报
回复
我现在是怎么都不能建立两个连接。
甚至是两个类分别包含数据库操作。实例以后调用,第一个成功,第二个使用的时候就说第一个open了数据库,然后报错。
是什么原因了?
难道是我引用的oracle.DataAccess.client有问题?
hatazhou 2006-08-02
  • 打赏
  • 举报
回复
大家帮帮忙阿。
很急了
hatazhou 2006-08-01
  • 打赏
  • 举报
回复
很感谢楼上的发言。
但是你们提供的方法仍然只是支持单个事务,也就是只支持一个transaction。
而且用odp.net是不能给进行Cmd.Transaction = MyTrans!
cmd.transaction是个只读属性。
所以我现在非常的可困惑。到底有没有方法实现多事务?
或者建立两个连接,将两个transaction与其关联。
但是这样耗费资源 ,而且好像同时建立两个相同的连接系统也会报错。
怎么解决了?希望有人帮帮我!
我现谢谢了。
hzybc 2006-08-01
  • 打赏
  • 举报
回复
Dim MyTrans As SqlTransaction = Cn.BeginTransaction() '定义一个事务 在CN连接上
Cmd.Transaction = MyTrans '用命令激活事务
Cmd.CommandText = Sql1 'SQL 语句
Cmd.ExecuteNonQuery() '执行SQL
Try
MyTrans.Commit() '提交事务
Catch ex As Exception
MsgBox(ex.ToString, 48)
MyTrans.Rollback() '回滚事务
Exit Sub
End Try
dongshanyu 2006-08-01
  • 打赏
  • 举报
回复
没用过odp.net,若可以得话你换个接口连数据库;
我用的是ODBC,针对一个数据库,可以建立两个连接;
不过,我不知道为什么一个数据库需要建两个连接.
hatazhou 2006-08-01
  • 打赏
  • 举报
回复
难道这个问题有这么难吗?
我简化一下好了,用odp.net和vb.net连接数据库的时候能不能针对一个数据库建立两个连接?
如果可以的话,就将两个事务分别联系到这两个连接上面。
但是我建立两个连接就报错........
lxjlz 2006-07-31
  • 打赏
  • 举报
回复
是這樣呀.connection 和tansaction有關聯就可以
hatazhou 2006-07-31
  • 打赏
  • 举报
回复
主要是我想在程序中处理多个事务。
或者大家是否知道在vb.net中运用odp.net如何处理多事务?
hatazhou 2006-07-31
  • 打赏
  • 举报
回复
怎么没有人知道啊?

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧