【问题标题】:comparing a datagridview cell with an integer value将 datagridview 单元格与整数值进行比较
【发布时间】:2015-03-26 17:01:22
【问题描述】:

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

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

我收到一个 InvalidCastException,其中详细说明了 Specified cast is not valid...

【问题讨论】:

  • 你试过ToInt32(dgQueue.SelectedRows[0].Cells["StatusKey"].Value)吗?

标签: c# visual-studio-2010 datagridview


【解决方案1】:

如前所述,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());

【讨论】:

    【解决方案2】:

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

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

    2012 年是否已弃用 (int) 转换?或者,“StatusKey”单元格集合(可能是空值)是否存在整数以外的值?我试图理解为什么这种编码在 2008 年工作得很好,而现在在 2012 年却不行。有任何想法吗 ???我问是因为这种编码技术遍布整个应用程序,我正在考虑将我的所有行都更改为上面的策略......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-29
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多