起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 244|回复: 12

【结贴】[请教]多表关联后保存的问题**

[复制链接]
发表于 2008-4-28 16:53:21 | 显示全部楼层 |阅读模式
多表关联后,比如左连接,但只保存最后一个表的内容,如果保存的内容是右表中已经存在的话,即修改记录时能保存,如果在最后右表中没有记录,即只显示左表中的部分内容,而右表的列为空,当我修改右表的值时,默认添加右表中所有关键字的值,但是保存时,提示如图问题!

snap1.jpg

15.52 KB, 下载次数: 134

回复

使用道具 举报

发表于 2008-4-28 17:02:49 | 显示全部楼层
通过数据集保存,数据集的sql只能是简单sql。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 17:11:24 | 显示全部楼层
不是太明白啊,不是只要设置好数据集的更新选项就好了吗?而且我在更新选项中也只保存一个表啊。
回复 支持 反对

使用道具 举报

发表于 2008-4-28 17:43:14 | 显示全部楼层
如果是复杂sql,需要自己修改更新选项
关于1楼报的错误,参考 http://bbs.justep.com/forum.php?mod=viewthread&tid=2355 看一下出错的原理,
可能跟你更新选项的设置有关系。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-29 07:51:12 | 显示全部楼层
你提供的这个网址,我之前看过,但是好像都不是啊,我虽然没有点添加,但是对于有些记录来说,(比如左表有值,对应的右表无值,当我在记录中修改右表记录时)就相当于执行了添加的过程,就是这时候提示的错误,我修改右表中原来已经存在的记录时不提示错误。
而且在更新选项中的添加和更新代码都是我修改后的,用常量添加也不行
回复 支持 反对

使用道具 举报

发表于 2008-4-29 11:10:48 | 显示全部楼层
如果在最后右表中没有记录,即只显示左表中的部分内容,而右表的列为空,当我修改右表的值时,默认添加右表中所有关键字的值,但是保存时,提示如图问题!

ps
右表为空,那您就成新增了。而数据集可能认为是更新了。发语句可能错误了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-29 11:31:44 | 显示全部楼层
对,我刚发现这个问题,对于右表来说是新增,但是在更新选项中好像只执行了更新,请问这个问题如何解决呢?
回复 支持 反对

使用道具 举报

发表于 2008-4-29 11:33:36 | 显示全部楼层
最好是换逻辑处理这个关联表。比如用主从表表现这个业务。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-29 13:39:45 | 显示全部楼层
可是我是在DATAGRID中显示内容,如果用主从表,那不就得建两个数据集,然后设置其主从关系,可是这样的话,在一个表格中就显示不出来了呀
回复 支持 反对

使用道具 举报

发表于 2008-4-29 13:42:46 | 显示全部楼层
1、那就必须改业务逻辑了。比如显示的时候用left join方式,录入的时候让用户用另一个界面。
2、或者您用自定义数据集,用代码更新或者插入新数据。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 23:54 , Processed in 0.044605 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表