统计上的错误 大家帮我看一下(0分)

  • 主题发起人 主题发起人 lfq29463041
  • 开始时间 开始时间
L

lfq29463041

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm12.Button1Click(Sender: TObject);
begin
adoquery1.Filter:='课程序号='''+edit1.Text+'''';
adoquery1.Filtered:=True;
adoquery1.Open;
if adoquery1.RecordCount=1 then
begin
adoquery1.Close;
adoquery1.Params[0].AsString:=edit1.Text;
adoquery1.Open;
adoquery1.Close;
adoquery1.sql.clear;
adoquery1.SQL.Add('SELECT COUNT(*),AVG(成绩),MAX(成绩),MIN(成绩)');
adoquery1.SQL.Add('FROM 成绩信息表');
adoquery1.SQL.Add('WHERE 课程序号='''+edit1.text+'''');
adoquery1.Open;
Edit6.Text:=adoquery1['COUNT'];
Edit2.Text:=adoquery1['MAX'];
Edit4.Text:=adoquery1['AVG'];
Edit3.Text:=adoquery1['MIN'];
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECT COUNT(*)');
adoquery1.SQL.Add('FROM 成绩信息表');
adoquery1.SQL.Add('WHERE 课程序号='''+edit1.Text+'''');
adoquery1.SQL.Add('AND 成绩<60');
adoquery1.Open;
Edit5.Text:=adoquery1['COUNT'];
end
else
Application.MessageBox('不存在此课程号,请核实!','课程号有误',MB_OK);
end;
end.
 
你是说什么错误啊,我看你的代码中就好多不完整的.
这样一来肯定统计不出来了
 
procedure TForm12.Button1Click(Sender: TObject);
begin
adoquery1.Filter:='课程序号='''+edit1.Text+'''';
adoquery1.Filtered:=True;
adoquery1.Open;
if adoquery1.RecordCount=1 then
//这里肯定是1吗? 要不改成>0
begin
adoquery1.Close;
//这里加句 adoquery1.Filtered:=False;吧
adoquery1.Params[0].AsString:=edit1.Text;
//这句好象没什么用吧。你后面根本就没有用Params。也可能是你原来的Sql语句里有,但是我没明白这里为什么要关闭,打开,再关闭??
adoquery1.Open;
//不要
adoquery1.Close;
//不要
adoquery1.sql.clear;
adoquery1.SQL.Add('SELECT COUNT(*),AVG(成绩),MAX(成绩),MIN(成绩)');
adoquery1.SQL.Add('FROM 成绩信息表');
adoquery1.SQL.Add('WHERE 课程序号='''+edit1.text+'''');
adoquery1.Open;
Edit6.Text:=adoquery1['COUNT'];
//?????这里没有看到有字段Count!!!应该是adoquery1['expr1000']

Edit2.Text:=adoquery1['MAX'];
//同上 adoquery1['expr1001']
Edit4.Text:=adoquery1['AVG'];
//同上
Edit3.Text:=adoquery1['MIN'];
//同上
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECT COUNT(*)');
adoquery1.SQL.Add('FROM 成绩信息表');
adoquery1.SQL.Add('WHERE 课程序号='''+edit1.Text+'''');
adoquery1.SQL.Add('AND 成绩<60');
adoquery1.Open;
Edit5.Text:=adoquery1['COUNT'];
//?????这里没有看到有字段Count!!!
end
else
Application.MessageBox('不存在此课程号,请核实!','课程号有误',MB_OK);
end;
end.
 
估计是 adoquery1.Filter 没有清空造成的错误[:D]
 
后退
顶部