DELPHI 用 ADO 查询的结果填充列表框
DELPHI Fill a listbox with the results of ADO Query
一直在通读所有相关主题,但没有发布解决方案来帮助我 Delphi。
很简单,我有一个名为 Story 的 MySQL table,我想从中提取特定字段 - 从而填充列表框。
在其他帖子中,我使用了以下...
adoqMenu.Close;
adoqMenu.SQL.Text := 'SELECT StoryID, Story Description, Completion Date FROM Story';
try
adoqMenu.Open;
ListBox1.Items.Clear;
while not adoqMenu.Eof do
begin
ListBox1.Items.Add(adoqMenu.Fields[0].AsString);
adoqMenu.Next;
end;
finally
adoqMenu.Close;
end;
这只给了我第一个字段...grr。很简单,我该如何更改它,以便 SELECT 子句中所述的字段按原样显示在列表框中?
谢谢
您只看到一个字段,因为您只读出一个字段 (adoqMenu.Fields[0]
)。只需读出其他字段即可:
adoqMenu.Close;
adoqMenu.SQL.Text := 'SELECT StoryID, Story Description, Completion Date FROM Story';
adoqMenu.Open;
try
ListBox1.Items.Clear;
while not adoqMenu.Eof do
begin
Value1 := adoqMenu.Fields[0].AsString;
Value2 := adoqMenu.Fields[1].AsString;
Value3 := adoqMenu.Fields[2].AsString;
// use Values as needed. Format the ListBox text however
// you want to show all three values...
ListBox1.Items.Add(...);
adoqMenu.Next;
end;
finally
adoqMenu.Close;
end;
根据您的实际需要(您没有解释),vsReport
模式下的多列 TListView
可能比 TListBox
:
adoqMenu.Close;
adoqMenu.SQL.Text := 'SELECT StoryID, Story Description, Completion Date FROM Story';
adoqMenu.Open;
try
ListView1.Items.Clear;
while not adoqMenu.Eof do
begin
Item := ListView1.Items.Add;
Item.Caption := adoqMenu.Fields[0].AsString;
Item.SubItems.Add(adoqMenu.Fields[1].AsString);
Item.SubItems.Add(adoqMenu.Fields[2].AsString);
adoqMenu.Next;
end;
finally
adoqMenu.Close;
end;
一直在通读所有相关主题,但没有发布解决方案来帮助我 Delphi。
很简单,我有一个名为 Story 的 MySQL table,我想从中提取特定字段 - 从而填充列表框。
在其他帖子中,我使用了以下...
adoqMenu.Close;
adoqMenu.SQL.Text := 'SELECT StoryID, Story Description, Completion Date FROM Story';
try
adoqMenu.Open;
ListBox1.Items.Clear;
while not adoqMenu.Eof do
begin
ListBox1.Items.Add(adoqMenu.Fields[0].AsString);
adoqMenu.Next;
end;
finally
adoqMenu.Close;
end;
这只给了我第一个字段...grr。很简单,我该如何更改它,以便 SELECT 子句中所述的字段按原样显示在列表框中?
谢谢
您只看到一个字段,因为您只读出一个字段 (adoqMenu.Fields[0]
)。只需读出其他字段即可:
adoqMenu.Close;
adoqMenu.SQL.Text := 'SELECT StoryID, Story Description, Completion Date FROM Story';
adoqMenu.Open;
try
ListBox1.Items.Clear;
while not adoqMenu.Eof do
begin
Value1 := adoqMenu.Fields[0].AsString;
Value2 := adoqMenu.Fields[1].AsString;
Value3 := adoqMenu.Fields[2].AsString;
// use Values as needed. Format the ListBox text however
// you want to show all three values...
ListBox1.Items.Add(...);
adoqMenu.Next;
end;
finally
adoqMenu.Close;
end;
根据您的实际需要(您没有解释),vsReport
模式下的多列 TListView
可能比 TListBox
:
adoqMenu.Close;
adoqMenu.SQL.Text := 'SELECT StoryID, Story Description, Completion Date FROM Story';
adoqMenu.Open;
try
ListView1.Items.Clear;
while not adoqMenu.Eof do
begin
Item := ListView1.Items.Add;
Item.Caption := adoqMenu.Fields[0].AsString;
Item.SubItems.Add(adoqMenu.Fields[1].AsString);
Item.SubItems.Add(adoqMenu.Fields[2].AsString);
adoqMenu.Next;
end;
finally
adoqMenu.Close;
end;