标题:c#调用vfp数据库为什么事务回滚函数不好用?
只看楼主
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
结帖率:33.33%
 问题点数:0 回复次数:1 
c#调用vfp数据库为什么事务回滚函数不好用?
transaction.Rollback();

两条记录,第一条已经执行了,第二条出错执行了回滚,但是并没有真正的回滚,导致第一条已向vfp库中保存无法撤销。

在access数据中没有问题,难道vfp不支持事务回滚?!!!
搜索更多相关主题的帖子: 事务 函数 数据库 vfp 
2009-09-14 19:49
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
忘了把代码贴上来了
在access或sql均能实现回滚,唯独vfp的dbf数据库不行,运行当中也没报错,也执行了rollback(),可是没起到作用....
 
string ole_connstring = @"Provider=VFPOLEDB.1;Data Source=C:\VfpSw\VfpSw\bin\Debug;";
OleDbConnection myConnection = new OleDbConnection(ole_connstring);
myConnection.Open();
OleDbCommand myCommand = myConnection.CreateCommand();
OleDbTransaction myTrans;
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans;
try
{
= "insert into test1 (www) value('123')";
myCommand.ExecuteNonQuery();
 
= "insert into test2 (nnn) value(000)";
myCommand.ExecuteNonQuery();
();
 
}
catch (Exception eee)
{
myTrans.Rollback();
MessageBox.Show(eee.ToString());
}
 
 
第二条执行语句我故意写错:"insert into test2 (nnn) value(000)"; 运行出错,执行回滚。
 
结果第一条执行后并没回滚,一样插入记录到test1中....
 
 
 

2009-09-15 11:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-285735-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.653347 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved