C#更改DataGridView单元格类型(错误?)

时间:2013-04-14 12:00:56

标签: c# datagridview

我有一个链接到DataTable的DataGridView。 表中的单元格设置为十进制。

如果没有相关数据,我希望在“权力”栏(#2)中显示“无数据”文本,而不是价值。

为此,我做了以下事情:

foreach (DataGridViewRow row in resultsDataGrid.Rows)
  if ((int)row.Cells["DataYN"].Value == 1)
  {
    row.Cells["Power"].ValueType = typeof(String);  
    row.Cells["Power"].Value = "No Data";  
  }

编译时,我收到一条错误消息'“ No Data”不是十进制的有效值 ....'。

单元格值类型已明确设置并显示为字符串,但编译器认为它仍为十进制。 我尝试了各种铸造和转换,但无济于事。

  1. 这是编译错误吗?
  2. 有解决方法吗?
  3. samtal

1 个答案:

答案 0 :(得分:0)

为什么不指定“No Data”作为单元格默认样式(http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcellstyle.nullvalue.aspx)的NullValue属性,而不是实际尝试更改单元格的值。这将消除循环数据的需要,并应防止网格尝试将值转换为小数。