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

有段查询代码,请帮忙看看,不胜感激~解决思路

2012-02-25 
有段查询代码,请帮忙看看,不胜感激~请教,按采购人查询完后总提示有0个商品,可明明不是0个的,请大家帮忙看

有段查询代码,请帮忙看看,不胜感激~
请教,按采购人查询完后总提示有0个商品,可明明不是0个的,请大家帮忙看看哪有问题,我用的是DELPHI自带的数据库.谢谢~
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
  if flag=0 then
  begin
  sqlstr:='select * from rkguanli where(caigourne='+'"+strval+")';
  flag:=1;
  end
  end
  else
  begin
  sqlstr:=sqlstr +'and(caigourne='+'"+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;







[解决办法]
你把SQL语句在数据库里运行看一下。。
[解决办法]
姑且不看运行结果,你的程序运行就应该会出错,以下SQL是有问题。
sqlstr:= "select * from rkguanli where(mingcheng= "+ ""+strval+") "; 
应该改成
sqlstr:= 'select * from rkguanli where (mingcheng= '''+strval+''')'; 

sqlstr:= "select * from rkguanli where(caigourne= "+ ""+strval+") ";
改成
sqlstr:= 'select * from rkguanli where (caigourne= '''+strval+''')';

sqlstr:=sqlstr + "and(caigourne= "+ ""+strval+") "; 
改成
sqlstr:=sqlstr + ' and(caigourne='''+strval+''')'; 


楼主,命名及编程规范以及代码质量还是有待提高
[解决办法]
检查一下表
[解决办法]
把上面改成带else的试试
 if flag=0 then 
  
showmessage ( "请正确输入查询条件 ") 
else
begin 
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;
end;
[解决办法]
仔细查看自己的查询条件

热点排行