首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

大家帮忙看看这段查询代码,多谢

2012-03-19 
大家帮忙看看这段查询代码,谢谢!有两个问题,一个是degrid里除了数字显示的都是乱码,还有就是查询不出来,出

大家帮忙看看这段查询代码,谢谢!
有两个问题,一个是degrid里除了数字显示的都是乱码,还有就是查询不出来,出错提示为:gerenal sql error!请大家帮忙看看,谢谢了~
procedure TForm11.BitBtn3Click(Sender: TObject);
var
sqlstr,strval,comstr:string;
flag:integer;
begin
memo1.clear;
memo1.Lines.Add(' 商品名称, 数量 ');
memo1.Lines.Add('----------------------------------------------') ;
flag:=0;
strval:=trim(edit1.Text);
if strval<>''then
begin
sqlstr:='select*from rkguanli where(mingcheng='+'"+strval+")';
flag:=1;
end;
  strval:=trim(edit2.Text);
  if strval <>''then
  begin
  sqlstr:='select *from rkguanli where(caigouren='+'"+strval+")';
  flag:=1;
  end
  else
  begin
  sqlstr:=sqlstr +'and(name='+'"+strval+")';
  end;


  strval:=trim(edit3.Text);
  if strval <>''then
  begin
  sqlstr:='select *from rkguanli where(zongjia=edit3.Text)';
  flag:=1;
  end
  else
  begin
  sqlstr:=sqlstr +'and(zongjia='+'"+strval+")';
  end;

  strval:=trim(edit4.Text);
  if strval <>''then
  begin
  sqlstr:='select *from rkguanli where(rukuriqi='+'"+strval+")';
  flag:=1;
  end
  else
  begin
  sqlstr:=sqlstr +'and(rukuriqi='+'"+strval+")';
  end;
 if flag=0 then
 begin
 showmessage ('请正确输入查询条件');
 end;
 query1.Close;
 query1.sql.text:=sqlstr;
 query1.Open;
 flag:=0;
 while not query1.Eof do
 begin
 sqlstr:=query1.fieldbyname('mingcheng').AsString ;
 sqlstr:=sqlstr+','+query1.fieldbyname('shuliang').asstring;
 memo1.Lines.add(sqlstr);
 query1.Next;
 flag:=flag+1;
 end;
 memo1.Lines.Add('---------------------------------------------') ;
 memo1.Lines.add('一共有'+inttostr(flag)+'项符合查询条件');
 end;






end.

[解决办法]
SQL语句写错了,跟踪一下,注意'''
[解决办法]
select *from rkguanli where(rukuriqi= "+ ""+strval+") 
注意空格
[解决办法]
你程序里面怎么都是双引号啊?
记得delphi里面没有啊
奇怪
[解决办法]
sqlstr:= "select *from rkguanli where(caigouren= "+ ""+strval+") "; 
应该是:
sqlstr:= "select * from rkguanli where (caigouren= " +strval+ ")"; 
SQL语句你可以一个个调试出来在企业管理器或SQL查询分析器里执行一下,语法没错了就OK.

[解决办法]
SQL语句写错了。

热点排行