mysql - DELPHI 用 ADO 查询的结果填充一个列表框

标签 mysql delphi ado

已通读所有相关线程,但没有发布解决方案来帮助我使用 Delphi。

很简单,我有一个名为 Story 的 MySQL 表,我想从中提取特定字段 - 从而填充列表框。

在其他帖子中,我使用了以下...

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;

关于mysql - DELPHI 用 ADO 查询的结果填充一个列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28203684/

相关文章:

mysql - 如何通过 Typescript 在 Node 中使用 mysql

ruby - 通过 ADO 连接将十进制值添加到 excel

vba - 在 Access VBA 中声明新记录集时,为什么以及何时使用 New 关键字?

sql - 通过Excel ADO连接执行带参数存储过程的限制

python - 如何在Python中将字符串值调用到sql查询中

php - 获取每日客流数据

mysql - Rails 中创建表和主键问题

windows - 如何使用 Delphi 7 检索 Windows 中所有磁盘的磁盘签名?

delphi - Firemonkey 使用样式书隐藏圆角溢出

delphi - 在Delphi中获取发送方组件的数组索引