如:后台性别编号为0,1,而dbgrid中显示为男,女

解决方案 »

  1.   

    1。设定DBGrid性别字段列的PickList为'男'、'女';2。在DataSet中性别列的OnGetText事件中写入:
      if Sender.AsBoolean then
        Text := '男'
      else
        Text := '女';
    3。在OnSetText事件中写入:
      if Text := '男' then
        Sender.AsBoolean := true 
      else
        Sender.AsBoolean := false;
      

  2.   

    请参照原贴,稍加修改:
    http://expert.csdn.net/Expert/topic/3019/3019729.xml?temp=.7169611
      

  3.   

    1.字段的OnGetText,OnSetText;
    procedure TForm1.ADOQuery1SexGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
      if Sender.Integer = 0 then
        Text := '男'
      else
        Text := '女';
    end;procedure TForm1.ADOQuery1SexGetText(Sender: TField; const Text: String);
    begin
      if Text = '男' then
        Sender.AsInteger := 0
      else
        Sender.AsBoolean := 1;
    end;
    2.若为DBGridEh,可用KeyList、与PickList结合来做;
    3.若只为显示,可用select (case sex when 0 then '男' else '女' end) as sex from tbl来实现
      

  4.   

    没有什么难度,主要就是在永久列的GetText事件中修改Text参数就可以了。
      

  5.   

    >>顺便问一句:什么是永久列?
    就是在你的的DataSet上面双击,然后Add Field
      

  6.   

    用SQL语句也可以实现
    select 
    case 性别 
    when 0 then '男'
    when 1 then '女'
    end as 性别
    from Table