【发布时间】:2013-08-22 14:41:45
【问题描述】:
在我的应用程序中,我有以下行:
double val = Convert.ToDouble(values8[x]) + 24837;
如果values8[x] 无法转换为Double,则应用程序崩溃并显示错误Input string was not in a correct format。
如何测试这个,如果转换失败,将val 设置为DBNull.Value?尝试/捕捉?这样的事情可以接受吗?
编辑:这就是我想要做的事情
try
{
double val = Convert.ToDouble(values8[x]) + 24837;
com.Parameters.Add("@p1", OleDbType.Date, 255).Value = DateTime.FromOADate(val);
}
catch (exception e)
{
com.Parameters.Add("@p1", OleDbType.Date, 255).Value = DBNull.Value;
}
EDIT2:TryParse 是我要找的。p>
【问题讨论】:
-
values8[x]对我来说听起来像是代码味道。请创建一个合适的数据模型。 -
有各种
.TryParse方法。 -
您不能将
DBNull.Value存储在double类型的变量中。大概是有更多代码(未显示)试图将值发送到数据库? -
0 大约是指示错误的最差默认值!好像 0 不是有效的双精度数?
标签: c#