代码之家  ›  专栏  ›  技术社区  ›  B. Clay Shannon-B. Crow Raven

我可以,也应该强制DGV单元格的内容为空吗?

  •  0
  • B. Clay Shannon-B. Crow Raven  · 技术社区  · 12 年前

    我正在将DGV中输入的值保存到列表中 <T >;它们是十进制值或为空。如果为空,我希望它们被视为null,这样我的助手函数就会将那些空的vals视为0。但这里的这句话:

    rrsr.DuckbillRate = Convert.ToDecimal(GetValAtColRow(colNumber, rowNumber));
    

    …有时会因“输入字符串格式不正确”而失败(当失败时,它试图转换的值是字符串。empty):

    以下是我的助手函数,用于获取单元格值,这样我就可以将它们保存在列表中 <T >中;,并从存储在列表中的那些记录的内容中恢复/重新填充单元格 <T >:

    private string GetValAtColRow(int colNum, int rowNum)
    {
     DataGridViewRow desiredRow = dataGridViewPlatypi.Rows[rowNum];
     return (desiredRow.Cells[colNum].Value ?? 0).ToString(); 
    }
    
    private void SetValAtColRow(int colNum, int rowNum, string val)
    {
     string convertedVal = val;
     // If the value is 0, I want to display an empty cell (nothing)
     if (convertedVal.Equals("0"))
     {
      convertedVal = string.Empty;
     }
     DataGridViewRow desiredRow = dataGridViewPlatypi.Rows[rowNum];
     desiredRow.Cells[colNum].Value = convertedVal;
    }
    
    1 回复  |  直到 12 年前
        1
  •  2
  •   Freelancer    12 年前

    解析在某个地方出错了。。。

    输入字符串格式不正确通常在解析不正确时出现错误。。。

    关于其他问题。。。试着这样做>>>

    string a =  dataGridViewPlatypi.Rows[rowNum].Cells[colNum].Value.toString()
    
    if(a=="")
    {
    .
    .
    //further things
    }