我在DBGIRD 中顯示的是相互關聯的兩個表的內容﹐關聯字段是name , 其中表www11中顯示的是學生信息﹔ 表poll中顯示的學生成績信息。 程序能夠運行﹐可運行后沒什么變化﹔特別是DBGRID又能夠刷新﹐就是不返回我想要的結果﹔
我的程序源代碼如下
with ADOQuery2 do
begin
close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select www11.*,po11.math,po11.english,po11.chinese from www11 inner join po11 on www11.name=:na');
ADOQuery2.Parameters.ParamByName('na').value:=edit1.text;
ADOQuery2.ExecSQL;
showmessage('數據統計成功﹗');
ADOQuery1.Close;
ADOQuery2.close;
ADOQuery1.open;
ADOQuery2.open;
end;
我的程序源代碼如下
with ADOQuery2 do
begin
close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select www11.*,po11.math,po11.english,po11.chinese from www11 inner join po11 on www11.name=:na');
ADOQuery2.Parameters.ParamByName('na').value:=edit1.text;
ADOQuery2.ExecSQL;
showmessage('數據統計成功﹗');
ADOQuery1.Close;
ADOQuery2.close;
ADOQuery1.open;
ADOQuery2.open;
end;
试试:
'select www11.*,po11.math,po11.english,po11.chinese from www11 inner join po11 on www11.name=po11.name where www11.name=:na
1.代码冗余太多,也不对
2.SQL语句有问题,两个表的连接条件都没写,即使能出来结果也不对修改代码
with ADOQuery2 do
begin
close;
SQL.Clear;
//对你使用的数据库不是很熟,不知道语法,看看我改的能不能执行,关键是看明白我的意思
SQL.Add('select www11.*,po11.math,po11.english,po11.chinese from www11 inner join po11 on www11.name = po11.name where www11.name = :na');
Parameters.ParamByName('na').value:= edit1.text;
open;
showmessage('數據統計成功﹗'); ADOQuery1.Close; //不知道你操作ADOQuery1干什么
ADOQuery1.open;
nd;
ADOQuery2.Parameters.ParamByName('na').value:=''''+ edit1.text + '''';
2 不用ADOQuery2.ExecSQL;而用Open
我改后的代碼如下﹕
with ADOQuery2 do
begin
close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select www11.*,po11.math,po11.english,po11.chinese from www11 inner join po11 on www11.name=po11.name where www11.name=:na');
ADOQuery2.Parameters.ParamByName('na').value:=edit1.text;
open;
showmessage('數據統計成功﹗');
ADOQuery1.Close;//通過關閉在打開實現刷新DBGRID 的數據﹔
ADOQuery2.close;//若只用ADOQUERY2 關閉的話實現不了刷新功能﹗
ADOQuery1.open;
ADOQuery2.open;
end;
ADOQuery2.close;
ADOQuery1.open;
ADOQuery2.open﹔用這兩句的話﹐dbgrid還閃 一下﹐用其他的比如refresh,連反應都沒有﹗看看是什么問題﹐太怪了﹗
-----------------------------------------
ADOQuery1.Close;//通過關閉在打開實現刷新DBGRID 的數據﹔
ADOQuery2.close;//若只用ADOQUERY2 關閉的話實現不了刷新功能﹗
ADOQuery1.open;
ADOQuery2.open;-----------------------
这样写有必要吗?
我現在查詢出來的結果是兩個表的內容 ﹐所以我用了兩個不同的ADOQUREY
with adoquery1 do
begin
close;
sql.clear;
sql.add('select www11.*,po11.math,po11.english,po11.chinese from www11 inner join po11 on www11.name = po11.name where www11.name ='''trim(edit1.text)''');
open;
end;
这样dbgrid中的数据应该能自动刷新的,试一下,不行,再和我联系!!