无法隐式将double转换为字符串错误

时间:2012-06-26 11:33:49

标签: c# .net

我有一个包含多个标题的Excel工作表。其中一个标题是Param2。分配给Param2的变量在我的代码中是strParam2。这就是在我的代码中声明strParam2的方式

 String strParam2 = xlRange.Cells[row, 7].Value;

我的代码理想地读取Excel工作表中的单元格并执行一组操作。我在excel表格中的Param2下的单元格中给出了值2。为了将其转换为字符串,我使用了行

System.Int32.TryParse(strParam2.ToString(), out iDetailLevel);

但是,我收到一个错误“无法隐式地将double转换为字符串”我也尝试过这行,但是我再次收到错误。

System.Double.TryParse(strParam2.ToString(), out iDetailLevel);

这是什么问题?以前有没有人经历过类似的事情?

3 个答案:

答案 0 :(得分:3)

最有可能的是,您在分配到strParam2的行上收到错误,因为xlRange.Cells[row, 7].Value返回double,无法隐式转换为string }。

答案 1 :(得分:2)

看起来该特定单元格的值是双精度,而您的代码正试图通过implicitly convert=变为字符串。您需要检查单元格的值并进行相应的转换

String strParam2 = xlRange.Cells[row, 7].Value;

将是:

String strParam2 = xlRange.Cells[row, 7].Value.ToString();

正如您所说,strParam2在代码的其他地方使用,然后只需创建一个新字符串来保存标题文本并保持不变:

string headerText = xlRange.Cells[row, 7].Value.ToString();

答案 2 :(得分:0)

如果你有这条线:

String strParam2 = xlRange.Cells[row, 7].Value.ToString();
杜安建议道。您不需要在解析中包含.ToString()。只需使用strParam2值。