显示不了数据
我的数据库的其中一个表的备注的数据类型用ntext,我在adoquery中的sql语句都添加了备注
'select ygbh as '+'''员工编号'+''''+',ygxm as'+'''员工姓名'+''''+',bmm as'+'''部门'+''''+',zwmc as'+'''职务'+''''+',lxdh as'+'''联系电话'+''''+',dzyj as'+'''电子邮件'+''''+',yg.bz as '+'''备注'+''''+'from yg ,zw ,bm where yg.bmbh=bm.bmbh and yg.zwbh=zw.zwbh';
在窗体的onshow事件也有memo1.Text:= datamodulemis.ADOQueryyg.FieldByName('备注').asstring;
问题是无论在dbgrid和memo1都不能显示我备注的内容?其他的如“员工编号”等都可以通过edit控件显示出来
[解决办法]
memo1.lines.text:=datamodulemis.ADOQueryyg.FieldByName( '备注 ').asstring;
[解决办法]
你的做法只会显示第一条记录的“备注”,问题所在在于没有刷新界面。如果第一条记录记录是空的,就好像看不到备注内容。
解决方法有两种:
1、记录移动时,刷新显示。
procedure TFmXXX.OnShowRecord(sender: TDataSet);
begin
memo1.Text:= ADODataSet1.FieldByName('备注').asstring;
...
end;
//记录移动时,需要刷新界面
procedure TFmXXX.FormShow(Sender: TObject);
begin
...
datamodulemis.ADOQueryyg.Open;
datamodulemis.ADOQueryyg.AfterScroll := OnShowRecord;
end;
2、查询时就对数据进行转换,在DBGrid里显示就没有问题。
select ...,cast(yg.bz as varchar) as '备注'...