"日期格式的输入值不够长"使用TableAdapter进行更新时

时间:2017-07-26 19:01:34

标签: vb.net oracle oracle11g .net-4.5 tableadapter

我的查询由DataAdapter管理,所以我几乎无法控制它的生成。问题查询就是这样:

UPDATE  MYSCHEMA.MYTABLE
SET     MYDATETIME = :myDateTime
WHERE   (MYKEY = :myKey)

自动生成数据访问层。我无法改变其运作方式......

数据库端MYDATETIME的类型为Timestamp

myDateTime查询的参数DataAdapter的类型和数据集中的字段为DateTime

不确定是否重要。此外,似乎在Oracle方面,小时为24小时,但应用程序管理的小时数为12小时。但为什么这很重要?调用更新方法时,我传递Date.Now。它有多合理?但它仍被拒绝:

  

ORA-01840:日期格式的输入值不够长

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

根据评论聊天,似乎发生了字符串转换,因为参数数据库类型设置为varchar

将参数的ProviderType设置为与Oracle期望的类型更相关的东西 - 它可以是Date,DateTime,Timestamp,OracleDateTime或此主题的某些变体(名称根据您是否使用而变化) .net oracle客户端或oracle的一个),希望......