根据http://msdn.microsoft.com/en-us/library/office/aa211091(v=office.11 ).aspx ,MS Jet 数据库引擎没有“NUMBER”数据类型;然而,这就是我在我正在查询的表的 MS Access 设计视图中看到的 - 即
我通过查询检索到的第一列的数据类型是“NUMBER”数据类型。
当我尝试将该值转换为 Int32 和 Double 时,我的这段代码都会中断:
// A set comprised of two columns are returned from a query in cmd
using (OleDbDataReader oleDbD8aReader = cmd.ExecuteReader())
{
while (oleDbD8aReader != null && oleDbD8aReader.Read())
{
//var accountID = oleDbD8aReader.GetString(0); // <-- this fails (it's a number, not a string)
//var accountID = oleDbD8aReader.GetInt32(0); // <-- this also fails!
var accountID = oleDbD8aReader.GetDouble(0); // <-- as does this!
var deptName = oleDbD8aReader.GetString(1);
. . .
}
}
为什么它无法转换为字符串、整数或双精度?我应该将其转换为什么?