请看一下这段代码,它的结果非常奇怪!(10分)

  • 主题发起人 主题发起人 redwood
  • 开始时间 开始时间
R

redwood

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm2.Button2Click(Sender: TObject);
begin
with dm do
begin
form2_query4.Close;
form2_query4.SQL.Clear;
form2_query4.SQL.Add('SELECT Xueji_main.学号,Xueji_main.姓名,Xueji_main.专业,Xueji_main.班级,Xueji_chengji.课程,Xueji_chengji.成绩 FROM "xueji_main.DB" Xueji_main,"xueji_chengji.DB" Xueji_chengji WHERE Xueji_chengji.课程=:n and Xueji_chengji.成绩<60');
form2_query4.ParamByName('n').AsString:=DBLookupComboBox1.KeyValue;
form2_query4.Open;
end;
end;

结果在DBGRID里边显示每一个由该课程的人,而且还把每一个的成绩改成和最低分一样的小于60(而且值还相同)……(我的表内该科成绩不是全部小于60)
 

form2_query4.ParamByName('n').AsString:=DBLookupComboBox1.KeyValue;
改为
form2_query4.FieldByName('课程').asstring:=dblookupcombobox1.keyvalue;
试试看

还不行,可能是你程序其他的地方可能有问题!
 
这样有区别吗?结果依然,全成了50分……
 
SELECT Xueji_main.学号,Xueji_main.姓名,Xueji_main.专业,Xueji_main.班级,Xueji_chengji.课程,Xueji_chengji.成绩 FROM "xueji_main.DB" Xueji_main,"xueji_chengji.DB" Xueji_chengji WHERE Xueji_main.学号=Xueji_chengji.学号 and Xueji_chengji.课程=:n and Xueji_chengji.成绩<60'
你没有建立关键字的连接,你把代码传过来我帮你看看你的表可能有问题
 
lyjnew@163.com
 
我感觉是你这里出错了,我以前写的时候遇到过类似的问题,很头疼的,
SELECT Xueji_main.学号,Xueji_main.姓名,Xueji_main.专业,Xueji_main.班级,
Xueji_chengji.课程,Xueji_chengji.成绩 FROM "xueji_main.DB"
Xueji_main,"xueji_chengji.DB" Xueji_chengji WHERE Xueji_main.学号
=Xueji_chengji.学号 and Xueji_chengji.课程=:n and Xueji_chengji.成绩<60'
没有必要把库的名字都写出来,你这段代码不是你写的,是BDE自动生成的是吗?
你可以自己来写嘛?将你要用的两个库连接,数据库用别名就可以了,在试试,我
开始也和你一样的,漫漫来吧,
 
>>WHERE Xueji_chengji.课程=:n and Xueji_chengji.成绩<60');
你的两个表怎么连接起来?通过什么字段? 没有连接就是这样了!
 
两个表有一个共同的列“学号”
 
我不知你是否看见我写的语句,他们之间要靠学号连接,重庆的哈哈,学校总是不变的课题
 
后退
顶部