• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

事务问题----比较急

pengweihua 2004-11-23 05:05:09
我有两个表,一个主表T1,另外是从表T2,
因为客户有要求不能写存储过程,数据库是Oracle,对Oracele不太熟
主表和从表建有外键,我在作事务时,无法INSERT从表,因为找不到主表的值

请大家怎么解决
...全文
183 点赞 收藏 15
写回复
15 条回复
qqqdong 2004年11月24日
因为.net 不支持局部事务回滚??????

不单支持事务,而且支持两阶段事务
回复 点赞
pengweihua 2004年11月24日
>>> goody9807()

net 对oracle不支持事务处理嵌套的语法
回复 点赞
pengweihua 2004年11月24日
就是这个意意
回复 点赞
ag1978 2004年11月24日
大家可能误会楼主了。

楼主说:“主表和从表建有外键,我在作事务时,无法INSERT从表,因为找不到主表的值”

所以请大家回答他怎样获得主表的值就行了。


我的做法是:不采用自动编号列来解决这种问题。
回复 点赞
轻舟已过万重山 2004年11月24日
.Net支持事务啊。
象你做插入删除的,这种事务比较简单吧。

MSDN:ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemDataSqlClientSqlConnectionClassBeginTransactionTopic3.htm
回复 点赞
李天平 2004年11月24日

给你一个我自己写的执行事务的一个方法,两个sql语句,分别两个insert语句,同时执行就是了

public static void ExecuteSqlTran(string SQLString1,string SQLString2)
{
using (SqlConnection conn = new SqlConnection(strDBConnectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection=conn;
SqlTransaction tx=conn.BeginTransaction();
cmd.Transaction=tx;
try
{
cmd.CommandText=SQLString1;
cmd.ExecuteNonQuery();
cmd.CommandText=SQLString2;
cmd.ExecuteNonQuery();
tx.Commit();
}
catch(System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
回复 点赞
goody9807 2004年11月24日
http://blog.csdn.net/goody9807/articles/138813.aspx
回复 点赞
pengweihua 2004年11月24日
>>>.因为.net 不支持局部事务回滚??????(net 和oracle)

不单支持事务,而且支持两阶段事务(是在同一事务里面)
回复 点赞
Netmark 2004年11月23日
up
回复 点赞
talenty 2004年11月23日
up...
回复 点赞
pengweihua 2004年11月23日
>>>主从表情况,插入首先要插入主表,后插入从表!
删除首先要删除从表,后删除主表!

我是把它作在同一事务里面,要同时成功,要么同时失败
因为.net 不支持局部事务回滚
回复 点赞
因为想念才会寂寞 2004年11月23日
把你的语句贴回来,看看,直接用Sql语句是可以的。
回复 点赞
rustical 2004年11月23日
主从表情况,插入首先要插入主表,后插入从表!
删除首先要删除从表,后删除主表!
回复 点赞
pengweihua 2004年11月23日
对,T2说违反了xxx约束,t1 和 t2有外建约束,但insert t1 和insert t2时,在同一事务里面
回复 点赞
tonybaobao 2004年11月23日
能否具体些?
如果你插入T2说违反了xxx约束,那就是你数据的问题啊,并非方法的问题。
不写存储过程,那么你就用ADO.NET的事务,一样可以的。只要你的SQL语句正确,业务逻辑正确,那一步一步做下去应该是不可能有问题的。
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告