ASP在线考试判分及考题保存

ASP在线考试判分及试题保存
<%
'验证学号及科目信息
dim xh,kemu
xh=trim(request.form("xh"))
kemu=trim(request.form("kemu"))
Stime=trim(request.form("Stime"))
ctime=now()
If xh="" Then
Response.Write("<script language=""JavaScript"">alert(""学号怎么能为空呢!!"");</script>")
response.redirect "UserLoginout.asp"
end if
'根据科目题型读取题量决定循环次数
set rs_km=server.createobject("adodb.recordset")
sql_km="select  * from smallclass_kemu where bigclassname='"&kemu&"' and smallclassname='单选题' order by smallclassid"
rs_km.open sql_km,conn,1,1
if not (rs_km.bof and rs_km.eof) then
dim danxuan,DanXuanID,danxuanF,numDanX,selectdDanX,danxuanXSDA
selectdDanX=rs_km("selectd")
numDanX=cint(rs_km("num"))
danxuanF=0
for i= 1 to numDanX
DanXuanID=trim(request.form("DanXuanID"&i&""))
danxuanXSDA=trim(request.form("danxuan"&i&""))
set rs_danx=server.createobject("adodb.recordset")
sql_danx="select  * from tiku where id="&DanXuanID&""
rs_danx.open sql_danx,conn,1,1
if danxuanXSDA=rs_danx("daan") then
danxuanF=danxuanF+selectdDanX
end if
next
end if
response.write DanxuanF&"--"&selectdDanX&"--"&numDanX&"<br>"
%>

1、这是我做在线考试统分的代码,单选题个数numDanX应该等于15,也是循环的次数,单个分值selectdDanx应该等于2,这段代码有时正常用时不正常,danxuanXSDA是学生答案,考试提交后经常不能输出单选题个数及单个分值,正常显示应该是:“20--2-15”但基本上都是显示“------”求高手分析错误!优化程序!
2、我定义了一个danxuan,,数据库的成绩表也有这个字段,我想把所抽到的题的题干、标准答案、学生答案按1到numDanX的顺序,合并保存到danxuan字段里。我不知道怎么定义,怎么实现循环合并字段。我原想在
if danxuanXSDA=rs_danx("daan") then
danxuanF=danxuanF+selectdDanX
                        danxuan=danxuan&"i"&"、"&rs_danx("title")&"标准答案:"&rs_danx("daan")&"学生答案:"&"<br>"
end if
next
danxuan=danxuan&"i"&"、"&rs_danx("title")&"标准答案:"&rs_danx("daan")&"学生答案:"&"<br>"
之间加入加粗部分,但不正常,应该怎么写,求代码!谢谢!
------解决思路----------------------
因为可能学生某个单选题没有做,即没有选择,request.form("danxuan"&i&""))为空,即 danxuanXSDA为空。没法与正常答案比较。