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);
. . .
}
}
string、int、または double への変換に失敗するのはなぜですか? 代わりに何に変換すればよいですか?