老提示我主键非空值不能为空,可我上头添了数值的啊??不知道这是为什么?

nicholas_yy 2003-11-12 09:27:01
我有两个数据窗口 一个是freedorm输入数据 一个是 grid显示数据
开始工作的很好 可我用design-----datesourse 更改数据源时候,在两个表里加了几个列,这时候在运行程序时候,freedorm表就无法显示了,于是我在窗口open事件里加入dw_2.InsertRow(0),这样freedorm表才能显示出来,可当输入数据保存时候
老提示我主键非空值不能为空,可我上头添了数值的啊??
不知道这是为什么?
...全文
625 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chrisfy 2004-01-03
  • 打赏
  • 举报
回复
很可能是你在update properties设置中的updateable columns列表中漏选了某个主键项
jiangjildy 2004-01-03
  • 打赏
  • 举报
回复
你重新生成数据窗口后,其更新属性可能变化了,重设一下更新属性就可以了
msdn_vipuser 2004-01-03
  • 打赏
  • 举报
回复
赞同同楼上!! chrisfy(K.O)
zzclhcbmail 2003-11-12
  • 打赏
  • 举报
回复
在保存之前用下dw_1.accepptext()包你解决问题,要没解决的话,到你添加了几个列的数据窗口中选择菜单 rows----update properties ,再选上左边数据窗口里的所有字段即可
jackzhang168 2003-11-12
  • 打赏
  • 举报
回复
同意楼上的
jiangjildy 2003-11-12
  • 打赏
  • 举报
回复
是不是你的更新属性没有设置?填这数据窗口而无更新属性是不行的
huangxinru 2003-11-12
  • 打赏
  • 举报
回复
共享的话,二个数据源得完全一致
uoche 2003-11-12
  • 打赏
  • 举报
回复
你用messagebox('',sqlca.sqlerrtext)查看一下主键有没有获得值了。。。
xyzliuin 2003-11-12
  • 打赏
  • 举报
回复
liuin_2001@sina.com.cn
xyzliuin 2003-11-12
  • 打赏
  • 举报
回复
你的程序怎么这么乱,思路不清晰,许多无用代码,数句窗口共享用法也有问题
如方便你把你的程序和表结构发给我,我给你改一下
nicholas_yy 2003-11-12
  • 打赏
  • 举报
回复
我做了共享了啊
窗口open事件
DW_1.Settransobject(sqlca)
DW_2.Settransobject(sqlca)
wf_refresh_cb(true)
dw_1.sharedata(dw_2)//共享数据窗口
DW_1.Retrieve()
dw_2.InsertRow(0)

我的增加事件
Long ll_row
is_czlx = 'new'
ll_row = dw_1.insertrow(0)
dw_1.scrolltorow(ll_row)
dw_2.setfocus()
dw_2.setcolumn(1)
wf_refresh_cb(false)
dw_1.object.jfrq[ll_row] = datetime(today(),now())
dw_1.object.jfnd[ll_row]=string(year(today()))

我的保存事件
String ls_xh
Long ll_row
dw_2.accepttext()
If dw_1.ModifiedCount() >0 THEN
ll_row = dw_1.getrow()
If ll_row < 1 Then Return
ls_xh=dw_1.object.xh[ll_row]
If ls_xh ="" or isnull(ls_xh) Then
messagebox("系统提示","学号不能为空!")
dw_2.setfocus()
dw_2.setcolumn("xh")
return
End If
If dw_1.update()> 0 Then
commit;
wf_refresh_cb(true)
cb_new.setfocus()
else
rollback;
messagebox("系统提示","保存失败!请检验数据的正确性")
dw_2.setcolumn(1)
dw_2.setfocus()
end if
else
wf_refresh_cb(true)
cb_new.setfocus()
End If


xyzliuin 2003-11-12
  • 打赏
  • 举报
回复
你两个数句窗口做共享了?把英文提示写出来

我有点不明白,能再详细一点吗

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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