【发布时间】:2019-03-21 13:27:12
【问题描述】:
我有一个简单的表单,它接受来自 11 个问题的单选按钮选择 (1-5) 中的数字,并将值作为 varchar(10) 数据发布到数据库中。我打算将用户发送到一个结果页面,该页面通过一个简单的 for 循环列出这些分数的总和,但是当我尝试将数据解析为整数格式时,由于解析错误,它只会导致零。这是我的代码示例:
// Q1 - Q11 are the questions in my Db, using Model property
int sum = 0;
int temp = 0;
String question;
for (int i = 11; i >= 1; i--)
{
question = "Model.Q" + i.ToString();
temp = int.Parse(question);
sum += temp;
}
return sum;
奇怪的是,如果我单独解析它们,比如写:
Int32.TryParse(Model.Q5, out temp);
我能够很好地解析数据。我的控制台显示循环将 question 变量保留为 "Model.Qx" 并带有引号,最终导致总和为 0。我也尝试过使用Int32.TryParse();,除了处理错误之外,它没有任何区别。
如果字符串包含与i 变量串联的标点符号,是否可以根本不解析字符串,或者我在这里遗漏了其他内容?我想避免单独解析每个问题,因为它在代码中看起来相当难看。
提前致谢。
【问题讨论】:
-
return 语句应该在 for 循环之外
-
如果您从模型中发布 Q5 的定义,我可以建议一个更好的方法。
-
@apomene 我的错,它最初是在循环之外,我一定是在写这个问题时不小心把它放在那里了。现在解决这个问题!
-
@RobinBennett Q5 或任何 Q 在我的模型中将是 varchar(10) 格式的数字 1-5(取决于用户单选按钮选择)。
-
好的,我在答案中添加了一个部分 - 有帮助吗?