我做查询的时候,出现错误提示为:列名“xh”无效,请哪位高手指教一下:
type
Tdatag1_form = class(TForm)
xh_ledit: TLabeledEdit;
xm_ledit: TLabeledEdit;
CmdOK: TButton;
CmdClose: TButton;
stu_dataSource: TDataSource;
stu_Grid: TDBGrid;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
stu_ADOQuery: TADOQuery;
procedure CmdOKClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure CmdCloseClick(Sender: TObject);
private
{ Private declarations }
public
modi:boolean;
{ Public declarations }
end;var
datag1_form: Tdatag1_form;
xh,xm,sqlstr:string;
implementationuses dataadd, main;{$R *.dfm}procedure Tdatag1_form.CmdOKClick(Sender: TObject);
begin
xh:=trim(xh_ledit.Text );
if length(xh ) >0 then
begin xm:=trim(xm_ledit.Text);
if length(xm)>0 then
begin
xm:='%'+xm+'%';
sqlstr:='select * from student where xuehao=xh and name like xm order by xuehao ';
end
else
begin
sqlstr:='select * from student where xuehao=xh order by xuehao ';
end;
end
else
begin
xm:=trim(xm_ledit.Text);
if length(xm)>0 then
begin
xm:='%'+xm+'%';
sqlstr:='select * from student where name like xm order by xuehao ';
end
else
begin
sqlstr:='select * from student order by xuehao';
end;
end;
with stu_ADOQuery.Create(nil) do
begin
try
Close;
Connection:=Mainform.ADOConnection1;
SQL.Clear;
SQL.Add(sqlstr);
Open;
if stu_ADOQuery.RecordCount <>0 then
begin
N1.Enabled:=true;
N2.Enabled:=true;
N3.Enabled:=true;
end
else
begin
N1.Enabled:=true;
N2.Enabled:=false;
N3.Enabled:=false;
end; finally
Free;
end;
end;
end;
type
Tdatag1_form = class(TForm)
xh_ledit: TLabeledEdit;
xm_ledit: TLabeledEdit;
CmdOK: TButton;
CmdClose: TButton;
stu_dataSource: TDataSource;
stu_Grid: TDBGrid;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
stu_ADOQuery: TADOQuery;
procedure CmdOKClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure CmdCloseClick(Sender: TObject);
private
{ Private declarations }
public
modi:boolean;
{ Public declarations }
end;var
datag1_form: Tdatag1_form;
xh,xm,sqlstr:string;
implementationuses dataadd, main;{$R *.dfm}procedure Tdatag1_form.CmdOKClick(Sender: TObject);
begin
xh:=trim(xh_ledit.Text );
if length(xh ) >0 then
begin xm:=trim(xm_ledit.Text);
if length(xm)>0 then
begin
xm:='%'+xm+'%';
sqlstr:='select * from student where xuehao=xh and name like xm order by xuehao ';
end
else
begin
sqlstr:='select * from student where xuehao=xh order by xuehao ';
end;
end
else
begin
xm:=trim(xm_ledit.Text);
if length(xm)>0 then
begin
xm:='%'+xm+'%';
sqlstr:='select * from student where name like xm order by xuehao ';
end
else
begin
sqlstr:='select * from student order by xuehao';
end;
end;
with stu_ADOQuery.Create(nil) do
begin
try
Close;
Connection:=Mainform.ADOConnection1;
SQL.Clear;
SQL.Add(sqlstr);
Open;
if stu_ADOQuery.RecordCount <>0 then
begin
N1.Enabled:=true;
N2.Enabled:=true;
N3.Enabled:=true;
end
else
begin
N1.Enabled:=true;
N2.Enabled:=false;
N3.Enabled:=false;
end; finally
Free;
end;
end;
end;
sqlstr:='select * from student where xuehao=xh order by xuehao ';
应该修改为:
sqlstr:='select * from student where xuehao='+''''+xh+''''+' order by xuehao ';