0

我正在尝试将数据库中的重试值解析为doublelonginteger,但它会引发 FormatException。我需要你的帮助。

在这段代码中,我试图从数据库中检索小时数并将它们相加以计算输入数据库的总小时数。

String hrs;
Double resultHrs=0;

while (oleDbDataReader1.Read())
{
    hrs = oleDbDataReader1["Hours"].ToString();
    double HRS = double.Parse(oleDbDataReader1["Hours"].ToString());
    resultHrs = resultHrs + HRS;
}// end while
4

2 回答 2

2

首先不要进行字符串转换:

double hours = (double) oleDbDataReader1["Hours"];

除非您的值实际上是数据库中的字符串(在这种情况下您应该修复它),否则没有理由将其转换为字符串。(如果它不是映射到 的类型double,你当然应该改变你将它转换成的类型。)

编辑:如果它在数据库中是非数字的,那么您可能确实需要使用double.Parse- 但您可能想要指定文化。例如,假设它们都是“10.2”而不是“10,2”(某些文化会使用)的形式,你会想要这样的东西:

double hours = double.Parse((string) oleDbDataReader1["Hours"],
                            CultureInfo.InvariantCulture);
于 2013-06-18T16:37:48.883 回答
1

我用:

 HRS = oledbDataReader1.GetDouble(iColumn);

其中 iColumn 是查询中的列索引

于 2013-06-18T16:42:07.210 回答