主题:遇到一个用Delphi连数据库的问题
lakjg
[专家分:0] 发布于 2006-09-29 23:07:00
在数据库表中性别是用布尔型保存的,但为了显示清楚在程序中加了TDBCheckBox和一个TComboBox.其中TDBCheckBox是隐藏的,只显示TComboBox,想用它的选择来改变数据库中的性别记录.
这用程序中代码:CheckBox1.Checked:=True;来修改的.
但实现过程中发现一个问题,就是添加或修改数据记录时,明明改变了TComboBox,并且TDBCheckBox的值也随即改变了,但就是提交时就是改变不了记录.一旦提交,一切立即成为原来的样子.像取消了一样.
请问各位高手这是为什么?
回复列表 (共3个回复)
沙发
冰封星云 [专家分:2260] 发布于 2006-09-30 08:47:00
在数据库表中性别是用布尔型保存的?
想用它的选择来改变数据库中的性别记录.
请问你是怎么改变的,不明白
板凳
xiaohongna [专家分:180] 发布于 2006-09-30 13:43:00
看不明白~为什么要TDBCheckBox那?既然隐藏了,看不到了还要他干什么啊?
提交的时候combobox返回的是index,不是boolean的,再说了~Tdbcheckbox和数据集有关系~那combobox和数据集有什么关系啊?
还是不明白你的意思
3 楼
lakjg [专家分:0] 发布于 2006-09-30 21:02:00
是这样的,Tdbcheckbox只起个中间作用.因为在记录表中用的是布尔型,用真和假分别代表男和女.
所以造成在程序窗口中数据控件也要用表示布尔型的Tdbcheckbox,但因为这样做看着不习惯,就又在上面加了一层combobox.它有两个Item分别为男和女,对应于Tdbcheckbox的真和假.
在界面上只让用户看到combobox,通过对它的选择来用CheckBox1.Checked:=True;或CheckBox1.Checked:=False;实现对性别的更改.
但实际中却发现明明用程序代码改变过了,但提交更改时却又复原了,保存不到数据库中去.
我来回复