listview和数据库相联接的问题?(20分)

  • 主题发起人 主题发起人 LJH1978
  • 开始时间 开始时间
L

LJH1978

Unregistered / Unconfirmed
GUEST, unregistred user!
1。如ADOQuery有如下内容
单位代码 单位名称 单位性质
1 A 01
2 B 02
。。。。。。。
如何使之同listview相联接并显示出来?
谢谢!
2。 如何当选中’2 B 02‘时并点”删除“
按纽时删除选中记录?
 
1、你还是用DBGrid吧。否则自己写代码读出来再显示上去。
2、这个是最基本的数据库操作,建议你在看书之前不要编程序。用TTable的Delete。
 
、你还是用DBGrid吧。否则自己写代码读出来再显示上去。
再写个过程读取数据,就可以多表共享这个窗体选择你所要的东东。
 
恩,我也想知道这个问题的答案~有谁能说具体点吗?谢谢
 
我回答第儿个问题
with Tadoquery.create(nil) do
begin
connect:= adoconnect1;
sql.add('delete table1 where 单位代码 = '+adoquery1.fields[0].asstring);
try

execsql;
finally
free;
end;
end


end;
 
type
TTreeData= ^PTreeData;
PTreeData=Record
id: string;
name: string;
end;

var
TreeData: TTreeData;
TreeNode1,TreeNode2: TTreeNode;
id,name: string;
i: integer;
begin
ADOQuery1.Open;
ADOQuery1.First;
i:=1;
while not ADOQuery1.Eof do
begin
id:=ADOQuery1.FieldByName('id').AsString;
name:=ADOQuery1.FieldByName('name').AsString;
New(TreeData);
TreeData^.id:=id;
TreeData^.name:=name;
TreeNode1:=TreeView1.Items.AddChild(nil,name);
TreeNode1.Data:=TreeData;
TreeNode1.StateIndex:=1;
ADOQuery2.Open;
ADOQuery2.First;
while not ADOQuery2.Eof do
begin
if Copy(ADOQuery2.FieldByName('id').AsString,1,1)=IntToStr(i) then
begin
id:=ADOQuery2.FieldByName('id').AsString;
name:=ADOQuery2.FieldByName('name').AsString;
New(TreeData);
TreeData^.id:=id;
TreeData^.name:=name;
TreeNode2:=TreeView1.Items.AddChild(TreeNode1,name);
TreeNode2.Data:=TreeData;
TreeNode2.StateIndex:=2;
ADOQuery2.Next;
end
else
ADOQuery2.Next;
end;
inc(i);
ADOQuery1.Next;
end;
end;
 
老大,
是LISTVIEW
 
这个问题很简单,单单填充肯定没问题。但数据多时会慢下来,不过,可以实行分页。
用ADO的RECORDSET.PAGESIAE,
RECORDSET.AbsolutePage,
RECORDSET.RECORDSETCOUNT也可达到。
下面是填充源码。如果还不会分页,可发EMAIL给我,我可给源码,但要给分哟
var
ListItem: TListItem;
begin
//填充表格
listview1.Items.clear;
ADOQuery1.First ;
while not ADOQuery1.Eof do
begin
ListItem := listview1.Items.Add;
ListItem.Caption :=ADOQuery1.fieldbyname('xm').Value;
ListItem.SubItems.Add(ADOQuery1.fieldbyname('gh').Value);
ListItem.SubItems.Add(ADOQuery1.fieldbyname('bm').Value);
ListItem.SubItems.Add(ADOQuery1.fieldbyname('zw').Value);
ADOQuery1.Next;
end;
 
谢谢方老大,数据载入问题已解决,我删除这样做
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Delete from DWK where bmMC=listview1.Items.Caption+'''');
PrepareD;
ExecSQL;
END;
end;

时报错,请问是什么原因?我估计是SQL错误,但不知道错在那里。
这种删除,各位还有什么好办法吗?谢谢
 
多人接受答案了。
 
后退
顶部