left side cannot be assigned to,这种错出现在给变量赋值……想不明白,明天要交设计了呢,在线等!(50分)

  • 主题发起人 主题发起人 wyoooooo
  • 开始时间 开始时间
W

wyoooooo

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.BitBtn10Click(Sender: TObject);
var
j:integer;
i:integer;
df:integer;
zf:integer;
testda,bzda:string;
begin
for j:=0 to 5 do
begin
zf:=0;//存储总分
testda:=adodataset1.FieldByName('ksda').asstring;//考生的答案
bzda:=adodataset2.fieldbyname('da').asstring;//标准答案
df:=adodataset2.fieldbyname('dafz').asinteger;//分值
for i:=0 to length(testda)-1 do
begin
if testda=bzda then
zf:=zf+df;//这句出错;
adodataset2.Next;//这句出错;
end;
adodataset3.edit;
adodataset3.insert;
adodataset3.fieldbyname('ksid'):=adodataset1.fieldbyname('ksid');
adodataset3.fieldbyname('kscj'):=zf;
adodataset2.first;
end;
end;
这段代码的作用是将两个表中的数据进行比较,如果相等就加分,不等就不加。
 
adodataset2.first;
放到循环的开始处试一试
 
还是一样的,
 
for i:=0 to length(testda)-1 do
begin
if testda=bzda then //是这句有问题 TESTDA[I]是一个字符
而BZDA是一个字符串,它们俩不能比较
zf:=zf+df;//这句出错;
adodataset2.Next;//这句出错;
end;
 
可以这样试试
if testda=bzda[1] then
 
还是一样的。
 
你这里用到了3个数据集
但是我并没有发现你打开数据集的语句啊
还有检查一下数据类型,看是否匹配,比如df:=adodataset2.fieldbyname('dafz').asinteger;//分值
这里的DAFZ字段是否是INTEGER型的等
 
dafz我用asinteger使它的反回值是integer型了。好像是没有打开这三个数据集……
 
>>>dafz我用asinteger使它的反回值是integer型了。好像是没有打开这三个数据集……
并非你用ASINTEGER使其为INTEGER型
而是你的数据库中该字段类型一定要为INTEGER型
 
为什么?
 
把你的表中的字段,说清楚了。
我帮助你调试一下。是ACCESS数据库吗?
 
是的,要不我把毕业设计发给你看一下?
 
jxl_king2000@yahoo.com.cn
你发过来吧!我看看
 
信我发也去了,不过我用到了第三方控件,那个要不要发啊?
 
不用
我大致看了。一会儿,给你答复。我有事儿了。
过一会儿,我在上来。
 
好的,谢谢……
 
昨天忘了说了,这段程序是在main模板里的。
 
后退
顶部