CAST 无效(OLEDB 日期)

发布于 2024-09-14 15:54:52 字数 537 浏览 5 评论 0原文

再会。我正在使用 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"))));< /代码>

good day. I am using an OLEDB connection to connect to DB2 database. I am having problems mapping the dates from database inside .NET.

In my business object I defined a private DateTime _genftmdpdate=DateTime.MinValue;
But whenever I fetch the date from database and populate inside my variable I get Specified Cast not valid error

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

Please help me as I don't want to convert the date into string all the time.

Edit
--- This won't work as well myftModInstall.genFtMDPDate = Convert.ToDateTime(myRecord.GetType((System.Data.OleDb.OleDbType.Date)(myRecord.GetOrdinal("GENFTMDPDATE"))));

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

莫言歌 2024-09-21 15:54:52

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

convert date time to char=FALSE

请参阅此问题:在 SSRS 报告中使用 AS400 日期

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

The IBMDA* providers default to mapping DB2 Date data types to strings. You must override the default in your connection string:

convert date time to char=FALSE

See this question: Using AS400 date in SSRS Report

IBM support article on connection properties: http://www-01.ibm.com/support/docview.wss?uid=nas8N1017400

只有影子陪我不离不弃 2024-09-21 15:54:52

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

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

Make sure that you check for a NULL before attempting to retrieve a value.

if(!myRecord.IsDBNull(myRecord.GetOrdinal("GENFTMDPDATE"))
    myftModInstall.genFtMDPDate = myRecord.GetDateTime(myRecord.GetOrdinal("GENFTMDPDATE"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文