从 datagridview C# 中检索数字值

Zai*_*aid 6 c# datagridview runtime

我正在尝试从 datagridview 检索数值。表中的值和变量 (weeklyTotal) 的数据类型都是整数。我也试图将其转换为整数。我浏览了整个网站是否有类似的问题,但没有一个解决方案有帮助。我收到的错误消息是 \xe2\x80\x9c当转换形成数字时,该值必须小于无穷大\xe2\x80\x9d。我不止一次地回到我的表以确保我没有\xe2\x80\x99t 具有无效值。

\n\n

这是一个运行时错误,IDE 总是指向这一行

\n\n

weekTotal += (int)dataGridView1.Rows[i].Cells[1].Value;

\n\n
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)\n        {\n            sdate = dataGridView1.Rows[i].Cells[2].Value.ToString();\n            ddate = dataGridView1.Rows[i].Cells[3].Value.ToString();\n\n            if ((weekFirstDay <= Convert.ToInt32(sdate) &&\n                Convert.ToInt32(sdate) <= (weekFirstDay + 7))||(weekFirstDay <= `Convert.ToInt32(ddate) &&`\n                Convert.ToInt32(ddate) <= (weekFirstDay + 7)))\n            {\n                dataGridView1.Rows[i].Selected = true;\n                dataGridView1.Rows[i].Visible = true;\n                weeklyTotal += (int)dataGridView1.Rows[i].Cells[1].Value;\n\n                //weeklyTotalString = dataGridView1.Rows[i].Cells[1].Value.ToString();\n                //weeklyTotal += Convert.ToInt32(weeklyTotalString);\n\n\n            }\n            else\n
Run Code Online (Sandbox Code Playgroud)\n

Tar*_*rec 7

这是因为以下内容不会将您的单元格值转换为 int 类型:

(int) dataGridView1.Rows[i].Cells[1].Value
Run Code Online (Sandbox Code Playgroud)

你只是把字符串说“嘿编译器,请将它视为 int 类型”,但它仍然是一个字符串类型。使用Convert.ToInt32您之前使用的方法。

weeklyTotal += Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value);
Run Code Online (Sandbox Code Playgroud)