我正在尝试从datagridview检索数值。表中的值和变量(weeklyTotal)的数据类型均为整数。我也试图将其转换为整数。我在整个网站上浏览了类似的问题,但是没有一种解决方案有用。我收到的错误消息是当转换数字时,该值必须小于无穷大。我已多次返回表以确保没有无效值。
I am trying to retrieve a numerical value from datagridview. The data type for both the value in the table, and the variable (weeklyTotal), are integer. Also I am trying to cast it into integer. I looked through the whole website for similar problems, and yet none of the solutions were helpful. The error message that I am getting is "when casting form a number, the value must be less than infinity". I went back to my table more than one time to make sure that I don’t have invalid value.
这是运行时错误,IDE始终指向此行
it's a runtime error and the IDE always point at this line
weeklyTotal + =(int)dataGridView1.Rows [i] .Cells [1] .Value;
for (int i = 0; i < this.dataGridView1.Rows.Count; i++) { sdate = dataGridView1.Rows[i].Cells[2].Value.ToString(); ddate = dataGridView1.Rows[i].Cells[3].Value.ToString(); if ((weekFirstDay <= Convert.ToInt32(sdate) && Convert.ToInt32(sdate) <= (weekFirstDay + 7))||(weekFirstDay <= `Convert.ToInt32(ddate) &&` Convert.ToInt32(ddate) <= (weekFirstDay + 7))) { dataGridView1.Rows[i].Selected = true; dataGridView1.Rows[i].Visible = true; weeklyTotal += (int)dataGridView1.Rows[i].Cells[1].Value; //weeklyTotalString = dataGridView1.Rows[i].Cells[1].Value.ToString(); //weeklyTotal += Convert.ToInt32(weeklyTotalString); } else推荐答案
好吧,这是因为
(int)dataGridView1.Rows[i].Cells[1].Value不会将您的单元格值转换为int类型。您只是将字符串说为嘿编译器,请将其视为int类型,但它仍然是下面的字符串类型。像以前一样使用 Convert.ToInt32 方法。
won't cast your cell value to the int type. You're just taking the string saying "hey compiler, please treat it as an int type" but it still will be a string type underneath. Use the Convert.ToInt32 method like you did earlier.
更多推荐
从datagridview C#中检索数字值
发布评论