一个小问题,请指教

dajiadebeibei9 2010-06-05 04:43:14
做一个在线考试系统,试题的各选项用RadioButton 嵌套在DataList中
点击提交按钮,在当前页获取用户的选项 并与数据库中的答案做对比
将做对的试题道数(mark)传给下一个页面
关键代码如下
foreach (DataListItem item in DataList1.Items)
{
RadioButton Radiobutton1 = (RadioButton)item.FindControl("Radiobutton1");
RadioButton Radiobutton2 = (RadioButton)item.FindControl("Radiobutton2");
RadioButton Radiobutton3 = (RadioButton)item.FindControl("Radiobutton3");
RadioButton Radiobutton4 = (RadioButton)item.FindControl("Radiobutton4");
if (Radiobutton1.Checked)
{
str = "A";
}
if (Radiobutton2.Checked)
{
str = "B";
}
if (Radiobutton3.Checked)
{
str = "C";
}
if (Radiobutton4.Checked)
{
str = "D";
}
if (ds.Tables[0].Rows[flag++]["答案"].ToString().Equals(str))
++mark;
Session["Score"] = mark.ToString();
Response.Redirect("FinalTestScore.aspx");
}


验证了一下 可以正确的从数据库中读取,也可以获得用户的选择
但是这个mark始终为0 我觉得就是最后这样if语句的问题
不知道怎么改 求解,谢谢啦
...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linkinwhite 2010-06-05
  • 打赏
  • 举报
回复
当选择正确时,
ds.Tables[0].Rows[flag++]["答案"].ToString().Equals(str)

为True吗,你设个断点调试一下

为True的话,是不是mark定义有问题啊
liulifen827 2010-06-05
  • 打赏
  • 举报
回复
if (ds.Tables[0].Rows[flag++]["答案"].ToString().Equals(str))
应该是这个条件有问题,
hanjinkai 2010-06-05
  • 打赏
  • 举报
回复
mark 是不是每次加载都是 0啊,也就是说你保存的值,下次访问的时候没有给它赋值
zhouwei7682719 2010-06-05
  • 打赏
  • 举报
回复
if (ds.Tables[0].Rows[flag++]["答案"].ToString().Equals(str))
++mark;
Session["Score"] = mark.ToString();
Response.Redirect("FinalTestScore.aspx");
这里单步调试看看!!
huhqian 2010-06-05
  • 打赏
  • 举报
回复
ds.Tables[0].Rows[flag++]["答案"].ToString(),看一下这个值和str的值分别是什么。
还有就是flag的值

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧