如果我按如下方式创建一个新的OleDbReader:
OleDbCommand command = new OleDbCommand(query, ActiveConnection);
reader = command.ExecuteReader();
while(reader.Read())
{
someList.Add((double)reader["columnHeader"]);
}
如果返回的数据输入为Int16 / Int32 / Int64而不是Double,我怎样才能确保我总是从指定的列返回一个double?我是否必须为每种可能的类型创建一个处理程序?我知道Double.Parse
存在,但它只接受字符串。所以,虽然我事先可以使用ToString()
,但我觉得这可能不是最直接的类型转换方式。
类似地,对于另一列,我希望确保任何String / Double / Int16 / Int32 / Int64值作为字符串返回。 ToString()
会处理这些案件吗?
我对潜在的溢出错误很好,因为我会检查异常,无论如何。
答案 0 :(得分:3)
你应该调用Convert.ToDouble()
,它有每种类型的处理程序。
相比之下,ToString()
适用于任何非空值。 (只要它覆盖ToString()
;所有数字类型都可以)