一个星期了,哎,头都快炸了,同学们,帮帮我吧!
procedure Treaderform.Button4Click(Sender: TObject);
begin
try
with datamoduleado.ADOQuery1 do
//以下代码将读者数据表reader中所有记录加入到listview1中
begin
close;
sql.Clear;
sql.Add('select * from reader order by readerid');
open;
listview1.Items.Clear;
while not eof do
begin
with listview1.Items.Add do
begin
caption:=fieldbyname('readerid').AsString;
subitems.Add(fieldbyname('name').AsString);
if fieldbyname('sex').AsString='1'then
subitems.Add('女')
else
subitems.Add('男');
subitems.Add(fieldbyname('idcardno').AsString);
end;
next;
end;
close;
end;
except
listview1.Items.Clear;
messagedlg('刷新出错',mterror,[mbok],0);
end;
end;
以上就是我的代码,但结果却是什么都显示不出来,我设置了listview的viewstyle为vsReport,showcolumnheaders为true,可就是在屏幕上什么都显示不出来,请各位同学帮我看看是怎么回事,另外,我要是把listview的viewstyle设为其他值,则则能显示数据的一部分,但显示时,就是以大白页,和windows德listview一点联系都看不出来
问题点数:0、回复次数:3Top
1 楼jxc163(一寒)回复于 2003-12-03 09:18:25 得分 0
你看一下Delphi自带的Demo,一个关于虚拟表的。Top
2 楼gavintolee(gavin)回复于 2003-12-03 10:13:47 得分 0
viewstyle为vsReport,columns加上你要的列名(相应字段)我开始也出现过这样的问题,后来解决了~~~
//显示读者列表
procedure TFormReader.Button2Click(Sender: TObject);
begin
try
with DataModuleADO.ADOQuery1 DO
begin
SQL.Clear;
SQL.Add('select * from reader order by readerID');
Open;
Listview1.Items.Clear;
while not eof do
begin
with Listview1.Items.Add do
begin
caption:=FieldByName('readerID').Asstring;
subitems.add(fieldbyname('name').Asstring);
if fieldbyname('sex').asstring='1'then
subitems.Add('女')
else
subitems.add('男');
subitems.add(fieldbyname('IDCardNO').Asstring);
end;
next;
end;
close;
end;
except
Listview1.items.clear;
messagedlg('刷新操作出错',mtError,[mbOK],0);
end;
end;Top
3 楼sweetch(龙の吻ж龙文)回复于 2003-12-03 10:22:51 得分 0
要用关键字作为写入数据库时的参数才行,比如说你这个表中的IDTop




