2

我希望用户能够从列出数据库的一些字段的下拉组合框中进行选择,然后在下面输入搜索词,然后所有符合查询的结果都显示在 dbgrid 中。我不确定如何将 ComboBox 的当前值链接到 sql 语句中。我试过用这个

begin
    with ADOQuery do begin
      Close;
      SQL.Clear;
      SQL.Add ('SELECT * FROM List WHERE combobox1.text =' +   QuotedStr (Asearchterm.Text));
      Open;

它不起作用。我得到的错误是“参数 combobox1.text 没有默认值”。有任何想法吗?

4

2 回答 2

3

如果您想使用 combobox1 文本值作为 sql 语句的一部分,您可以按照以下行设置 sql 字符串

'SELECT * FROM List WHERE [' + combobox1.text + '] = ''' + QuotedStr(Asearchterm.Text) + ''''

可能是您正在寻找的。我在 QuotedStr 周围添加了额外的引号,因为我猜测过滤器并不总是数值。这将适用于数字和非数字值。

于 2012-04-04T14:43:15.910 回答
1

而不是 'combobox1.text' 你必须输入你正在寻找的实际列名。您可以使用LIKE关键字和一些通配符。就像是:

SELECT * FROM 'table WHERE 'column' LIKE '%YOUR_SEARCH_TEXT%';

那是为了搜索......如果你想找到确切的字符串,那么你必须使用=运算符而不是 LIKE

更多信息在这里

于 2012-04-04T14:43:19.233 回答