c# 输入字符串的格式不正确。FormatException异常
stringanswerid="";stringid="";for(inti=0;i<this.Controls.Count;i++){if(this.Controls[...
string answerid ="";
string id ="";
for (int i = 0; i < this.Controls.Count;i++ )
{
if (this.Controls[i] is RadioButton) {
RadioButton ra = (RadioButton)this.Controls[i];
if (ra.Checked)
{
answerid = ra.Text;
id = ra.Tag.ToString();
}
}
}
string save = string.Format("UPDATE [Paper] SET [Answer]='{0}' WHERE [loginName]='{1}' AND [Question]={2}", answerid, login.userN, int.Parse(id));
SqlCommand savecomm = new SqlCommand(save,conn);
savecomm.ExecuteNonQuery();
这是一个考试系统,这是其中一部分功能,当我点击下一题时 ,将选中的Radiobutton的值传到数据库中,问题出在如果选中就会传值,如果不选任何Radiobutton直接到下一题,应该会传answerid的默认值 ,而现在会出现输入字符串的格式不正确。FormatException异常,请教一下是怎么回事
谢谢 只有在我没有做出选择时 也就是 程序没经过这段代码时,answerid为默认值 会 出现问题
if (ra.Checked)
{
answerid = ra.Text;
id = ra.Tag.ToString();
} 展开
string id ="";
for (int i = 0; i < this.Controls.Count;i++ )
{
if (this.Controls[i] is RadioButton) {
RadioButton ra = (RadioButton)this.Controls[i];
if (ra.Checked)
{
answerid = ra.Text;
id = ra.Tag.ToString();
}
}
}
string save = string.Format("UPDATE [Paper] SET [Answer]='{0}' WHERE [loginName]='{1}' AND [Question]={2}", answerid, login.userN, int.Parse(id));
SqlCommand savecomm = new SqlCommand(save,conn);
savecomm.ExecuteNonQuery();
这是一个考试系统,这是其中一部分功能,当我点击下一题时 ,将选中的Radiobutton的值传到数据库中,问题出在如果选中就会传值,如果不选任何Radiobutton直接到下一题,应该会传answerid的默认值 ,而现在会出现输入字符串的格式不正确。FormatException异常,请教一下是怎么回事
谢谢 只有在我没有做出选择时 也就是 程序没经过这段代码时,answerid为默认值 会 出现问题
if (ra.Checked)
{
answerid = ra.Text;
id = ra.Tag.ToString();
} 展开
展开全部
string save = string.Format("UPDATE [Paper] SET [Answer]='{0}' WHERE [loginName]='{1}' AND [Question]='{2}'", answerid, login.userN, int.Parse(id)); 改成这个试试 还有你 int.Parse(id) 确定传入进来的是数值型么 如果是 改成这个就可以了 如果不是 就看下id = ra.Tag.ToString();这个的值是什么值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在定义string id ="";
这个变量的时候给个默认值就可以了
如:string id ="1";
---------------------------------------------
按照我上面说的改肯定可以的
这个变量的时候给个默认值就可以了
如:string id ="1";
---------------------------------------------
按照我上面说的改肯定可以的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
换行处用+ 分割,最好前面加个@
string.Format(@"UPDATE [Paper] SET [Answer]='{0}' WHERE [loginName]='{1}' "+
"AND [Question]={2}", answerid, login.userN, int.Parse(id));
string.Format(@"UPDATE [Paper] SET [Answer]='{0}' WHERE [loginName]='{1}' "+
"AND [Question]={2}", answerid, login.userN, int.Parse(id));
追问
谢谢 不是这里的问题 我从c#直接复制过来的 这里自动换行了
追答
那就是很明显是int.Parse(id)的问题了,
if (ra.Checked)
{
answerid = ra.Text;
id = ra.Tag.ToString();
}
不执行,id="";
int.Parse("")就会说输入字符串的格式不正确,其他不为数字的参数一样会说格式不正确
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你如果不选择默认值id为空吧,填一个你需求的默认值,或者else一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询