当前位置:编程学习 > C#/ASP.NET >>

郁闷,今天碰到了datatime问题

从oracle查记录的时候,报错,系统非说我年月日有问题,可是这个程序已经跑了3个礼拜没有问题了,灰常郁闷,网络上查了下,好像都是莫名奇妙的,我仔细看了下,发现oracle里,记录在2007-6-4 11:10:00之后的数据查询就会出这错,搞不明白了,还望指教!!!这个程序每天都要按时跑,不能漏数据。。。。。

{System.ArgumentOutOfRangeException: 年、月和日参数描述无法表示的 DateTime。
   在 System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day)
   在 System.DateTime..ctor(Int32 year, Int32 month, Int32 day, Int32 hour, Int32 minute, Int32 second)
   在 System.Data.OracleClient.OracleDateTime.ToDateTime(Byte[] rawValue)
   在 System.Data.OracleClient.OracleDateTime.MarshalToDateTime(NativeBuffer buffer, Int32 valueOffset, Int32 lengthOffset, MetaType metaType, OracleConnection connection)
   在 System.Data.OracleClient.OracleColumn.GetDateTime(NativeBuffer_RowBuffer buffer)
   在 System.Data.OracleClient.OracleColumn.GetValue(NativeBuffer_RowBuffer buffer)
   在 System.Data.OracleClient.OracleDataReader.GetValues(Object[] values)
   在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
   在 System.Data.ProviderBase.SchemaMapping.LoadDataRow()
   在 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
   在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
   在 Service.GetBookCardData(String StaDate, String EnDate, String kind) 位置 d:\BkCdUpdateWeb\App_Code\Service.cs:行号 33}

日期代码方面肯定没有问题,已经正常跑了3个星期左右了 --------------------编程问答-------------------- 对了,sql语句在plsql dev等外部工具里查询很正常,一放到程序里就出错。。。。。 --------------------编程问答-------------------- 楼主把程序里的SQL语句写出来看下.
希望不是IO问题 --------------------编程问答-------------------- cmdtext = "select bookid as bcd_id,bookname,price,isbn,isbnbarcode as isbncode,publisher as pubcode,publihsername as publish,statclasscode,saleclasscode,author,seriesname,pubdate from dict_bookcard where  modifydate between to_date('" + StaDate + "','yyyy-mm-dd hh24:mi:ss') and to_date('enddate','yyyy-mm-dd hh24:mi:ss')";

stadate和enddate是我传入的string字符串,格式比如 2007-6-4 21:00:00这样,在外部工具里验证sql语句一切正常 --------------------编程问答-------------------- 把所有要执行的SQL语句写到文本文件里,出错后,分析下这个文本日志,看下是不是和传入的字符串有关系.
你程序已经运行这么长时间了,可能是某个 小错误印发的.
--------------------编程问答-------------------- 网络上有看到一篇论坛的帖子,3月31号莫名出错,4月1日又恢复正常,不知道为何这样。。

语句断点后贴出来了,放到plsql执行,正常,  --! --------------------编程问答-------------------- 我们也用Oracle 没碰到过啊,你用的Oracle几 --------------------编程问答-------------------- oracle 10g  具体版本没太注意去看 --------------------编程问答-------------------- pubdate 或者其他日期字段里面有非法数据

不能够转换成.net 的适配器数据格式 --------------------编程问答-------------------- 我查看过好像挺正常的哦,没有什么特别的哦,ls的说具体点,意思是不是记录里有格式不符合的日期串??我明天早上去单位在看看其他字段 --------------------编程问答-------------------- 查到了,oracle   date   0000 bug 问题。。。。。看来我要换个字段了。。。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,