Zai*_*aid 6 c# datagridview runtime
我正在尝试从 datagridview 检索数值。表中的值和变量 (weeklyTotal) 的数据类型都是整数。我也试图将其转换为整数。我浏览了整个网站是否有类似的问题,但没有一个解决方案有帮助。我收到的错误消息是 \xe2\x80\x9c当转换形成数字时,该值必须小于无穷大\xe2\x80\x9d。我不止一次地回到我的表以确保我没有\xe2\x80\x99t 具有无效值。
\n\n这是一个运行时错误,IDE 总是指向这一行
\n\nweekTotal += (int)dataGridView1.Rows[i].Cells[1].Value;
\n\nfor (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\nRun Code Online (Sandbox Code Playgroud)\n
这是因为以下内容不会将您的单元格值转换为 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)