如何使用combobox和sql数据库相关联,我编写的代码是
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
adoQuery1.open;
ComboBox2.Items.Clear;
while not adoQuery1.eof do
begin
ComboBox2.Items.Add(adoQuery1.fieldByname('txl_JiGuan').asstring);
adoQuery1.Next;
end;
end;
但最后运行的结果却是空白,要连接的数据表是JiGuan 列名为txl_JiGuan
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
adoQuery1.open;
ComboBox2.Items.Clear;
while not adoQuery1.eof do
begin
ComboBox2.Items.Add(adoQuery1.fieldByname('txl_JiGuan').asstring);
adoQuery1.Next;
end;
end;
但最后运行的结果却是空白,要连接的数据表是JiGuan 列名为txl_JiGuan
procedure TForm1.FormShow(Sender: TObject);
begin
adoQuery1.open;
ComboBox2.Items.Clear;
while not adoQuery1.eof do
begin
ComboBox2.Items.Add(adoQuery1.fieldByname('txl_JiGuan').asstring);
adoQuery1.Next;
end;
end;
begin
ADOQuery1.Close;
ADOQuery1.Clear;
ADOQuery1.SQL.Add('SELECT DISTINCT txl_JiGuan FROM JiGuan ORDER BY txl_JiGuan');
adoQuery1.open;
ComboBox2.Items.Clear;
while not adoQuery1.eof do
begin
ComboBox2.Items.Add(adoQuery1.fieldByname('txl_JiGuan').asstring);
adoQuery1.Next;
end;
end;
写在OnShow里或者是自己写一个构造函数比较好.
你可以在onshow事件中写
procedure TForm1.FormShow(Sender: TObject);
begin
adoQuery1.open;
ComboBox2.Items.Clear;
while not adoQuery1.eof do
begin
ComboBox2.Items.Add(adoQuery1.fieldByname('txl_JiGuan').asstring);
adoQuery1.Next;
end;
end;
同意