日期:2014-05-18  浏览次数:20827 次

c#问题求解,还望高手解答
Convert.ToInt32(StorNum.Rows[0][0].ToString().Trim()) 引发了"System.FormatException"异常,求高手解答

未处理的“System.FormatException”类型的异常出现在 mscorlib.dll 中。
其他信息: 输入字符串的格式不正确。


代码如下:
string GoodsCount = this.dataGridView1.Rows[i].Cells[5].Value.ToString().Trim();
NNum = Convert.ToInt32(GoodsCount)
if (Convert.ToInt32(TNum.Rows[0][0].ToString().Trim()) <Num)
  {
  MessageBox.Show(GoodName+"数量不足,请确认库存!");
  return;
  }


------解决方案--------------------
ToInt32()看看里面的是啥,是否能转成INT型
Convert.ToInt32(GoodsCount)
Convert.ToInt32(TNum.Rows[0][0].ToString().Trim())
都有可疑
------解决方案--------------------
直接这样就行了,不需要ToString
Convert.ToInt32(StorNum.Rows[0][0])

另外,转换前应该判断是否DBNull

if (!(StorNum.Rows[0][0]))
{
Convert.ToInt32(StorNum.Rows[0][0])
}

如果还是出错,在异常中输出值,看看是什么,

if (!(StorNum.Rows[0][0]))
{
try
{
Convert.ToInt32(StorNum.Rows[0][0])
}
catch(FormatException)
{
MessageBox.Show("错误的值="+StorNum.Rows[0][0].ToString());
}

}