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 类型 = '大学同学' "都能显示,但是为什么当我选定一个值(假如'大学同学')时候老报错:
列名'大学同学'无效.
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 类型 = '大学同学' "都能显示,但是为什么当我选定一个值(假如'大学同学')时候老报错:
列名'大学同学'无效.
先把这句改成sql.Add('select count(*) from msn where 类型 = '+QuotedStr(trim(combobox1.Text)));
然后看看还报错不?
我直接用
sql.Add('select count(*) from msn where 类型 = '''+combobox1.Text+'''');这样倒没有错了!
{你可以用showmessage(sql.text)查看一下它的文本内容;}
正确的应该是
sql.Add('select count(*) from msn where 类型 = '+QuotedStr(trim(combobox1.Text)));