with Query1 do begin First; while not Eof do begin with ListView1.Items.Add do begin Caption:=FieldByName('字段名1').AsString; SubItems.Add(FieldByName('字段名2').AsString); ... end; Next; end; end;最好不用ListView.速度太慢
var i:integer; begin adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add('select * from table'); adoquery1.open; if not adoquery1.eof then begin adoQuery1.First; while (not adoQuery1.Eof) do begin with ListView1.Items.Add do begin Caption := adoQuery1.Fields.Fields[0].AsString; for I := 1 to adoQuery1.FieldCount-1 do SubItems.Add(adoQuery1.Fields.Fields[I].AsString); end; adoQuery1.Next; end; end; end;
procedure TForm1.Button1Click(Sender: TObject); var Node,nodecld: TTreenode; //TreeView str,str1:string; begin adoconnection1.ConnectionString :='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER=SQL Server;SERVER=(local);APP=Enterprise;WSID=EDR-LIU;DATABASE=test;Trusted_Connection=Yes"'; Adodataset1.Connection :=adoconnection1; Adodataset1.CommandText :='select * from testTable1'; adodataset1.Open ;datasource1.DataSet :=adodataset1 ; dbGrid1.DataSource :=datasource1; while not adodataset1.Eof do begin str:=adodataset1.FieldByName('c').AsString ; str1:=adodataset1.fieldbyname('d').AsString ; node:=Treeview1.Items.Add(nil,str); nodecld:=Treeview1.Items.AddChild(node,str1); nodecld.ImageIndex :=0; //显示时的图片 nodecld.SelectedIndex:=0;// 选择是的图片 node.ImageIndex:=1; //显示时的图片 node.SelectedIndex:=1; //选择时的图片 ListView1.Items.Add.Caption:=str; ListView1.Items[ListView1.Items.Count-1].SubItems.Add(str1); if str='3' then ListView1.Items[ListView1.Items.Count - 1].ImageIndex :=0 else ListView1.Items[ListView1.Items.Count - 1].ImageIndex :=2; adodataset1.Next ; end; edit1.Text :=str;end;
query1.close;// query1.sql.clear; query1.sql.add('select * from table'); query1.open; if not query1.eof then begin query1.first; while not query1.eof do//query1的记录条数作为循环记录数(以下一个循环是一条记录) begin with listview1.items.add do//这个应该懂吧 begin listview1.items.add.caption:=query1.Fields.Fields[0].AsString;//把query1的第一个字段的值显示在listview的caption里面, for i:=1 to query1.FieldCount-1 do//query1.fieldcount是query1里面共有多少个字段; SubItems.Add(Query1.Fields.Fields[I].AsString);//把第I个字段的里的数据显示在caption之后的subitems里面; end; query1.next; end; end; listview的第一行的第一个数据是listview.items.item[1]caption; listview的第一行的第二个数据就是listview.items.item[1].subitems.strings[0]; listview的第一行的第二个数据就是listview.items.item[1].subitems.strings[1]; 这样说你应该明白了吧, 要看你的逻辑怎么样了, adoquery与query的用法都是一样的 只是一个是用于连接远程数据库一个是用于连接本地数据库
begin
First;
while not Eof do
begin
with ListView1.Items.Add do
begin
Caption:=FieldByName('字段名1').AsString;
SubItems.Add(FieldByName('字段名2').AsString);
...
end;
Next;
end;
end;最好不用ListView.速度太慢
i:integer;
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from table');
adoquery1.open;
if not adoquery1.eof then
begin
adoQuery1.First;
while (not adoQuery1.Eof) do
begin
with ListView1.Items.Add do
begin
Caption := adoQuery1.Fields.Fields[0].AsString;
for I := 1 to adoQuery1.FieldCount-1 do
SubItems.Add(adoQuery1.Fields.Fields[I].AsString);
end;
adoQuery1.Next;
end;
end;
end;
能说的清楚点吗????
var Node,nodecld: TTreenode; //TreeView str,str1:string;
begin
adoconnection1.ConnectionString :='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER=SQL Server;SERVER=(local);APP=Enterprise;WSID=EDR-LIU;DATABASE=test;Trusted_Connection=Yes"';
Adodataset1.Connection :=adoconnection1;
Adodataset1.CommandText :='select * from testTable1';
adodataset1.Open ;datasource1.DataSet :=adodataset1 ;
dbGrid1.DataSource :=datasource1; while not adodataset1.Eof do
begin
str:=adodataset1.FieldByName('c').AsString ; str1:=adodataset1.fieldbyname('d').AsString ;
node:=Treeview1.Items.Add(nil,str);
nodecld:=Treeview1.Items.AddChild(node,str1);
nodecld.ImageIndex :=0; //显示时的图片
nodecld.SelectedIndex:=0;// 选择是的图片
node.ImageIndex:=1; //显示时的图片
node.SelectedIndex:=1; //选择时的图片
ListView1.Items.Add.Caption:=str; ListView1.Items[ListView1.Items.Count-1].SubItems.Add(str1);
if str='3' then
ListView1.Items[ListView1.Items.Count - 1].ImageIndex :=0
else ListView1.Items[ListView1.Items.Count - 1].ImageIndex :=2; adodataset1.Next ;
end;
edit1.Text :=str;end;
query1.sql.clear;
query1.sql.add('select * from table');
query1.open;
if not query1.eof then
begin
query1.first;
while not query1.eof do//query1的记录条数作为循环记录数(以下一个循环是一条记录)
begin
with listview1.items.add do//这个应该懂吧
begin
listview1.items.add.caption:=query1.Fields.Fields[0].AsString;//把query1的第一个字段的值显示在listview的caption里面,
for i:=1 to query1.FieldCount-1 do//query1.fieldcount是query1里面共有多少个字段;
SubItems.Add(Query1.Fields.Fields[I].AsString);//把第I个字段的里的数据显示在caption之后的subitems里面;
end;
query1.next;
end;
end;
listview的第一行的第一个数据是listview.items.item[1]caption;
listview的第一行的第二个数据就是listview.items.item[1].subitems.strings[0];
listview的第一行的第二个数据就是listview.items.item[1].subitems.strings[1];
这样说你应该明白了吧,
要看你的逻辑怎么样了,
adoquery与query的用法都是一样的
只是一个是用于连接远程数据库一个是用于连接本地数据库