如何从数据库中检索数据并在Delphi中的Ttreeview中显示 [英] How to retrieve data from database and display in Ttreeview in delphi
本文介绍了如何从数据库中检索数据并在Delphi中的Ttreeview中显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
,欢迎逐步处理。我有两种表格格式,如下图所示,我想从数据库中填充树视图。我在其他资源网站上搜索,但没有找到解决方案我正在寻找。
我被卡住了请帮助我们...
提前许多感谢。
procedure TForm1.Button1Click(Sender:TObject );
var
// node:TTreeList;
i:整数;
MyTreeNode1,MyTreeNode2:TTreeNode;
开始
与TreeList1.Items做
开始
清除;
MyTreeNode1:= Add(nil,'Table');
ADOTable1.First;
而ADOTable1 do
begin
AddChild(MyTreeNode1,'B');
AddChild(MyTreeNode1,'c');
下一个;
结束
结束
结束
解决方案
切换到 TADOQuery
然后尝试这样:
procedure TForm1.Button1Click(Sender:TObject);
var
CurrentDeptID,RecordDeptID:Integer;
RootNode,DeptNode:TTreeNode;
begin
CurrentDeptID:= 0;
TreeList1.Items.Clear;
RootNode:= TreeList1.Items.Add(nil,'Departments');
DeptNode:= nil;
ADOQuery1.SQL.Text:='SELECT sd.DeptID,sd.Name,d.Dept FROM SubDepartments sd INNER JOIN Departments d ON(sd.DeptID = d.DeptID)ORDER BY d.Dept,sd.Name ';
ADOQuery1.Open;
try
ADOQuery1.First;
而不是ADOQuery1.Eof do
begin
RecordDeptID:= ADOQuery1.FieldByName('DeptID')。AsInteger;
if(DeptNode = nil)或(RecordDeptID CurrentDeptID)then
begin
DeptNode:= TreeList1.Items.AddChild(RootNode,ADOQuery1.FieldByName('Dept')。AsString );
CurrentDeptID:= RecordDeptID;
结束
TreeList1.Items.AddChild(DeptNode,ADOQuery1.FieldByName('Name')。AsString);
ADOQuery1.Next;
结束
finally
ADOQuery1.Close;
结束
结束
Please help me to populate a tree view from SQL database dynamically. I am very new to delphi
and step by step processes are welcome. I have two table formats given in the picture below and i want to fill the tree view from database accordingly. I searched on other resource sites also but didn't find the solution what i am looking for.
I am stuck. Please help me guys.... Many many thanks in advance.
procedure TForm1.Button1Click(Sender: TObject);
var
// node : TTreeList;
i: Integer;
MyTreeNode1,MyTreeNode2 : TTreeNode;
begin
with TreeList1.Items do
begin
Clear;
MyTreeNode1 := Add(nil, 'Table');
ADOTable1.First;
while ADOTable1 do
begin
AddChild(MyTreeNode1,'B') ;
AddChild(MyTreeNode1,'c');
Next;
end;
end;
end;
解决方案
Switch to TADOQuery
and then try something like this:
procedure TForm1.Button1Click(Sender: TObject);
var
CurrentDeptID, RecordDeptID: Integer;
RootNode, DeptNode: TTreeNode;
begin
CurrentDeptID := 0;
TreeList1.Items.Clear;
RootNode := TreeList1.Items.Add(nil, 'Departments');
DeptNode := nil;
ADOQuery1.SQL.Text := 'SELECT sd.DeptID, sd.Name, d.Dept FROM SubDepartments sd INNER JOIN Departments d ON (sd.DeptID = d.DeptID) ORDER BY d.Dept, sd.Name';
ADOQuery1.Open;
try
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
RecordDeptID := ADOQuery1.FieldByName('DeptID').AsInteger;
if (DeptNode = nil) or (RecordDeptID <> CurrentDeptID) then
begin
DeptNode := TreeList1.Items.AddChild(RootNode, ADOQuery1.FieldByName('Dept').AsString);
CurrentDeptID := RecordDeptID;
end;
TreeList1.Items.AddChild(DeptNode, ADOQuery1.FieldByName('Name').AsString);
ADOQuery1.Next;
end;
finally
ADOQuery1.Close;
end;
end;
这篇关于如何从数据库中检索数据并在Delphi中的Ttreeview中显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文