新手提问:在程序中用DBComboBox与数据库的一个BOOLEAN字段对应,该COMBOBOX已设成csDropDownList,并且只有两个选项ITEM:TRUE,FALSE,在表单初始化时采用:DBComboBox1.ItemIndex := 0;使默认值选择为TRUE,运行后出现的问题是:
    COMBOBOX已被选中为TRUE,但除非重新点选该控件,否则一采用DataSet1.UpdateRecord;向数据库进行数据更新时,该控件所对应的字段始终为空值,即初始化时所赋的初值不成功。
    请各位帮忙,谢谢!

解决方案 »

  1.   

    因为你在表单初始化时对其赋值,其对应的数据集并没有处在编辑状态。你应该对与其绑定的字段赋值,而非DBCombobox的ItemIndex。
      

  2.   

    搞了半天
     说到底也是为了选择数据跟新到数据库里面
    procedure TForm1.DBComboBox1DropDown(Sender: TObject);
    begin
     With Adoquery1 do
      Begin
        **
        SQl.add(select distinct bool列 from ***);
       ***
      End;
     while not Adoquery1.eof do
         Begin
           DBcombox1.items.add(AdoQuery1.fieldbyname('**').Asstring);
         End;
    end;
    //采用这个,就保证OK
      

  3.   

    谢谢WANGXUELLD,但chris_mao 说的是对的,在原来的DBComboBox1.ItemIndex := 0 后面加上  ADODataset1.FieldValues['myColumn'] :=  TRUE 后,即可将所赋的TRUE值写入数据库。
      

  4.   

    问题已解决,分虽然少(本人现在比较穷啊)但我还是想把10分给chris_mao,为什么结贴的时候老是提示密码验证有误?哪位朋友知道啊?