【问题标题】:Filling a TListBox with a column from a database query用数据库查询中的列填充 TListBox
【发布时间】:2012-08-03 01:13:23
【问题描述】:

我在我的数据库中创建了一个表,其中包含 MYDAC 组件并添加了数据。如何从该表中提取这些列中的值?

我试过这些,但没有用;

 MyQuery1.Close;
 MyQuery1.SQL.Text :='SELECT * FROM uyeler ORDER BY site';
 Listbox1.Items.Add(MyQuery1.ParamByName('site').AsString);
 MyQuery1.Execute; 

uyeler = 表

站点 = 列

编者注:根据 cmets 接受的答案,这个问题是询问如何使用查询列中返回的数据填充 TListBox

【问题讨论】:

    标签: delphi mydac


    【解决方案1】:

    你的问题有点不清楚。您询问如何将列数据添加到 TListBox,但您的代码示例显示了一些关于 ParamByName 的内容,看起来您正在尝试将 ListBox 值分配给 SQL 参数。

    注意:根据对此回复的评论澄清了问题。第一个代码回答了这个问题;我将把第二个作为示例留给未来的读者,因为它已经写好了。

    如果您尝试从数据库列填充TListBox,则需要运行查询,然后循环遍历数据以将列数据添加到您的TListBox。 (当你只打算使用site 列时,你也不应该SELECT *;这意味着当数据永远不会被使用并最终被丢弃时,额外的数据正在从数据库发送到应用程序.)

    这应该可以帮助您入门:

    MyQuery1.Close;
    MyQuery1.SQL.Text := 'SELECT site FROM uyeler ORDER BY site';
    try
      MyQuery1.Open;
      ListBox1.Items.Clear;
      while not MyQuery1.Eof do
      begin
        ListBox1.Items.Add(MyQuery1.Fields[0].AsString);
        MyQuery1.Next;
      end;
    finally
      MyQuery1.Close;
    end;
    

    如果您尝试执行第二个操作(使用来自 TListBox 的值填充参数),这应该会有所帮助:

    // to shorten typing of long lines
    var
      Site: string;
    begin
      if ListBox1.ItemIndex <> -1 then
      begin
        MyQuery1.Close;
        MyQuery1.SQL.Clear;
        MyQuery1.SQL.Add('SELECT Column1, Column2, site FROM uyeler');
        MyQuery1.SQL.Add('WHERE site = :siteval ORDER BY site');
        Site := ListBox1.Items[ListBox1.ItemIndex];
        MyQuery1.ParamByName('siteval').AsString := Site;
        MyQuery1.Open;
        try
          // Use the database rows here
        finally
          MyQuery1.Close;
        end;
      end;
    end;
    

    【讨论】:

    • @Ankara,您能否编辑您的问题(或对我的回答发表评论),以便未来的读者知道哪一部分回答了您的问题?谢谢。
    • 谢谢。问题已解决,我们需要您的帮助。我不懂英语。
    • @Ankara,不客气。是我回答的第一部分有帮助,还是第二部分?
    • @Ankara,谢谢。我编辑了你的问题(和我的答案)说第一部分是你想要的。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多