我在向数据库里写进东西时,可以看到数据库里有加入的内容!但是在TreeView里就只能显示出原来的数据(我用TreeView动态显示数据库里的内容),我在加入数据到数据库里后同时把数据库里的内容用TreeView显示出来,但就是只能显示上一次数据库里的内容,重新运行后又有了,我想问一下各位,是不是因为在程序开始运行时,数据库里的内容已经被复制到内存中去了,所以在我显示TreeView的时候,它总是把内存中的数据写上去,而没有把更新的数据库里的内容显示出来??
那我应该怎么办???
那我应该怎么办???
解决方案 »
- delphi 如何让Combobox下拉菜单时,显示一个树形结构
- 数据集字符串形式怎么保存到TClientDataSet
- 短信平台 如何集成到 三方的mis系统里 有没有好的解决方案 ?
- 有感于研究生毕业挣钱不如农民兄弟,感觉无所适从,发帖诉苦...
- 在绘图时,用VCL的Tpen 与 windows GDI API 哪个性能最佳.
- 新手提问:学习DELPHI遇到的相关问题。散光所有分。
- ◢◣请教:如何捕获这个异常
- application.ProcessMessages的问题
- 计算字段 与 总计字段
- 用一个TPaintBox来实时的显示几次位图,来完成一个动画,但是怎样能让它透明?UP有分!!
- 大侠们专家们快救救我
- 新手问题
我重新生成啦,但是还是上一次的数据内容,不是更新的!要重新运行一次程序就可以了!
我想是不是要释放一下内存中的东西,但不知道怎么释放?
var
Name,Ns: string;
Node:TTreeNode;
i:integer;
Flag:Boolean;
begin
Flag:=True;
ADOTable1.First;
while not ADOTable1.Eof do
begin
if DBedit1.Text=ADOTable1.FieldByName('部门编号').AsString then
begin
showmessage('该部门编号已经存在,请重新输入!');
DBEdit1.SetFocus;
Flag:=False;
end;
if DBedit2.Text=ADOTable1.FieldByName('部门名称').AsString then
begin
showmessage('该部门名称已经存在,请重新输入!');
DBEdit2.SetFocus;
Flag:=False;
end;
ADOTable1.Next;
end;
// 检查是否有重名 if Flag=True then
begin
ADOQuery1.Post;
showmessage('信息已经修改');
Button6.Enabled:=False;
BUtton7.Enabled:=False;
DBEdit1.ReadOnly:=True;
DBEdit2.ReadOnly:=True;
DBEdit3.ReadOnly:=True;
DBEdit4.ReadOnly:=True; SndPlaySound('.\SndResult.wav',SND_ASYNC); TreeView1.Items.Clear; ADOTable1.First;
while not ADOTable1.Eof do
begin
Name:=ADOTable1.FieldByName('部门名称').AsString;
Ns:=ADOTable1.FieldByName('隶属').AsString;
if Ns='无' then TreeView1.Items.Add(nil,Name)
else
begin
for i:=0 to TreeView1.Items.Count-1 do
begin
if Ns=TreeView1.Items.Item[i].Text then
begin
Node:=TreeView1.Items.Item[i]; TreeView1.Items.AddChild(Node,Name);
end;
end;
end;
ADOTable1.Next;
end;
TreeView1.Refresh;
end;
//生成树型结构
end;