将datagridview单元格与整数值进行比较

时间:2015-03-26 17:01:22

标签: c# visual-studio-2010 datagridview

此编码最近从C#.Net 2008升级到C#.Net 2012.此DataGridView中此单元格的值= 4,但每次我的程序到达此行时都会抛出异常。我在这里缺少什么?

if (((int)dgQueue.SelectedRows[0].Cells["StatusKey"].Value != 1 && isRequestCheck))

我收到一封InvalidCastException,详细解释为Specified cast无效......

2 个答案:

答案 0 :(得分:0)

如上所述,dgQueue.SelectedRows[0].Cells["StatusKey"].Value应该适用于指定的强制转换。尝试使用以下格式,如果值的数据类型等于预期,它应该可以工作。

如果期望值为4,则该行应为

int i =(int)dgQueue.SelectedRows[0].Cells["StatusKey"].Value.ToString().Trim();
int i =Convert.ToInt32(dgQueue.SelectedRows[0].Cells["StatusKey"].Value.ToString().Trim());

答案 1 :(得分:0)

一秒钟。在给出答案之前(并感谢您的答案),我能够完成这项工作

if ((Convert.ToInt32(dgQueue.SelectedRows[0].Cells["StatusKey"].Value) != 1 && isRequestCheck))

2012年已弃用(int)转换吗?或者,除了整数之外还有一个值是" StatusKey"细胞集合(可能是空值)?我试图理解为什么这种编码在2008年和现在在2012年工作得很好,但事实并非如此。有任何想法吗 ???我问,因为这种编码技术已经遍及这个应用程序,我正在考虑将我的所有细节改为上面的策略...