CAST无效(OLEDB日期)

时间:2010-08-18 04:10:13

标签: c# asp.net db2 oledb ibm-midrange

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

在我的业务对象中,我定义了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"))));

2 个答案:

答案 0 :(得分:1)

IBMDA *提供程序默认将DB2 Date数据类型映射到字符串。您必须覆盖连接字符串中的默认值:

convert date time to char=FALSE

请参阅此问题:Using AS400 date in SSRS Report

关于连接属性的IBM支持文章:http://www-01.ibm.com/support/docview.wss?uid=nas8N1017400

答案 1 :(得分:0)

确保在尝试检索值之前检查NULL。

if(!myRecord.IsDBNull(myRecord.GetOrdinal("GENFTMDPDATE"))
    myftModInstall.genFtMDPDate = myRecord.GetDateTime(myRecord.GetOrdinal("GENFTMDPDATE"));
相关问题