重大问题!!!!!!!!!

CanTop 2003-07-21 12:30:40
对于Access数据库\SYBASE等数据库
如果主表的ID是自动编号类型的字段,与子表的一字段MainTableID关联,如主表:

ID NAME 子表: ID MainTableID List
---------- ----------------------------
1 ONE 1 1 1
5 SENCOND 2 1 1
3 5 5

当我添加一条记录时,在我的DATASET中显示是 6 ,子表的MainTableID 也是为6 但用UPDATE方法先UPDATE主表,而由于主表在源数据库的ID值(=7) 已经改变,而子表的MainTableID去按照 6 来更新数据源!!! 造成数据的错误!!!!!!!!!!!!!!!!!!

在SQL SERVER中由于可以在UPDATE和INSERT语句中加入SELECT语句就没有问题
可是对于不是用SQL SERVER做数据库的用户,除了使用GUID做外键 该怎么办呢??????

高手的请你们多多指教呀!!!!!!!!!!!!
...全文
110 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CanTop 2003-07-21
  • 打赏
  • 举报
回复
在SQL SERVER中的INSERT中的语句:
this.sqlInsertCommand3.CommandText = @"INSERT INTO TABLE1(@NAME); SELECT ID NAME WHERE (ID= @@IDENTITY)";

但是在ACCESS和SYBASE中不能使用 ";" 和@@IDENTITY变量!!!!
我该如何办呢?????
CanTop 2003-07-21
  • 打赏
  • 举报
回复
但是在我的数据库里有10万条记录!!!!!!!!
保存进去了数据库,由于ID植在源数据库里已经改变,还可以找到原来的数据行吗??

这算不算M$的一大BUG!!!
saucer 2003-07-21
  • 打赏
  • 举报
回复
with Access2000 and later and sybase, you can also select Identity column out
saucer 2003-07-21
  • 打赏
  • 举报
回复
it doesn't matter how many records you have in your database


issue a separate command, see how it is done
http://msdn.microsoft.com/library/en-us/cpguide/html/cpconretrievingidentityorautonumbervalues.asp?frame=true
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2003-07-21 12:30
社区公告

让您成为最强悍的C#开发者