[英]Input string was not in a correct format
我正在尝试在gridview中添加int值。 这是我的C#代码:
foreach (GridViewRow r in GridView1.Rows)
{
int I = (Convert.ToInt32(r.Cells[5].Text)
+ Convert.ToInt32(r.Cells[6].Text)
+ Convert.ToInt32(r.Cells[7].Text)
+ Convert.ToInt32(r.Cells[8].Text)
+ Convert.ToInt32(r.Cells[9].Text));
r.Cells[10].Text = Convert.ToString(I);
}
异常:“输入字符串的格式不正确”
之前运行良好。 我切换到另一个系统,附加了数据库,在这里和那里做了一些更改,并且现在不起作用。 加载页面时,gridview单元格已经具有值。 我只是添加(求和)这些值,并在单击按钮时在同一gridview的另一个单元格中显示加法。
任何帮助表示赞赏。
检查传递给每个Convert.ToInt32
调用的值,其中一个或多个不能转换为int
。
您可以通过直接在数据库管理器中查看源代码,或单步执行代码并查看行的列和值等来执行此操作。但是,您所做的修复仍保持不变,并采用两种形式中的一种或两种:数据,或修改代码以免被忽略(如果可以接受)。
您可能对int.TryParse
感兴趣,用于后者。
尝试这个:
foreach (GridViewRow r in GridView1.Rows)
{
int val1 = 0;
int val2 = 0;
int val3 = 0;
int val4 = 0;
int val5 = 0;
int.TryParse(r.Cells[5].Text, out val1);
int.TryParse(r.Cells[6].Text, out val1);
int.TryParse(r.Cells[7].Text, out val1);
int.TryParse(r.Cells[8].Text, out val1);
int.TryParse(r.Cells[9].Text, out val1);
int I = (val1 + val2 + val3 + val4 + val5);
r.Cells[10].Text = I.ToString();
}
在尝试尽可能转换为其他数据类型之前,应始终测试值。
迭代时检查GridViewRow的RowType。 可能是您试图从HeaderRow解析值。 我认为您只对DataRows感兴趣。
另外,您可能要考虑不要使用单元格上的索引从gridview中获取值。 如果更改gridview的布局,则计算将失败。
您不能通过“转换”将空值转换为有意义的值。 最好的选择是先检查null,然后为结果赋值0(或其他值)(无论Convert也在发送结果的位置)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.