2010-08-18 66 views
0

美好的一天。我正在使用OLEDB连接来连接到DB2数据库。我在.NET中的数据库映射日期时遇到了问题。CAST无效(OLEDB日期)

在我的业务对象我定义了一个private DateTime _genftmdpdate=DateTime.MinValue; 但每当我从获取数据库中的日期和填充我变量中,我得到指定的转换无效错误

myftModInstall.genFtMDPDate = myRecord.GetDateTime(myRecord.GetOrdinal("GENFTMDPDATE")) 

请帮助我,因为我不希望将日期始终转换为字符串。

编辑 ---这将无法正常工作,以及myftModInstall.genFtMDPDate = Convert.ToDateTime(myRecord.GetType((System.Data.OleDb.OleDbType.Date)(myRecord.GetOrdinal("GENFTMDPDATE"))));

回答

0

请确保您试图检索值之前检查空。

if(!myRecord.IsDBNull(myRecord.GetOrdinal("GENFTMDPDATE")) 
    myftModInstall.genFtMDPDate = myRecord.GetDateTime(myRecord.GetOrdinal("GENFTMDPDATE")); 
+0

你好我已经做到了完全一样。它不能解决问题。问题在于从数据库'myRecord.GetDateTime'获取日期,如果我将其更改为myRecord.GetString,它可以工作,但是我必须对日期事物进行整体转换。 – 2010-08-18 06:38:21

+0

什么是数据库列的SQL数据类型? – 2010-08-18 06:50:02

+0

在数据库中它是DATE类型的。但我无法设法将它作为myrecord.GetDate的日期读取。 GetString只能使用。 – 2010-08-18 07:00:29