procedure Tdeltype.ComboBox1Change(Sender: TObject);
begin
  with Main.ADOQuery7 do
  begin
    close;
    sql.Clear;
    sql.Add('select count(*) from msn where 类型 = '+trim(combobox1.Text));
    open;
    label4.Caption:=Main.ADOQuery1.Fields[0].Value;
    label4.Font.Color:=clRed;
  end;
end;这段代码我的目的是想在combobox1中选定一个类别的一个值,然后要在label4中显示这个类别中总共有多少条数据.我在数据库中运行假如"'select count(*) from msn where 类型 = '大学同学' "都能显示,但是为什么当我选定一个值(假如'大学同学')时候老报错:
列名'大学同学'无效.

解决方案 »

  1.   

    sql.Add('select count(*) from msn where 类型 = '+trim(combobox1.Text)); 
    先把这句改成sql.Add('select count(*) from msn where 类型 = '+QuotedStr(trim(combobox1.Text)));
    然后看看还报错不? 
      

  2.   


    我直接用
     sql.Add('select count(*) from msn where 类型 = '''+combobox1.Text+'''');这样倒没有错了!
      

  3.   

    就是引号的问题咯你这样写也可以,用QuotedStr也可以
      

  4.   

    问题出在sql.Add('select count(*) from msn where 类型 = '+trim(combobox1.Text)); 
    {你可以用showmessage(sql.text)查看一下它的文本内容;}
    正确的应该是
    sql.Add('select count(*) from msn where 类型 = '+QuotedStr(trim(combobox1.Text)));