【问题标题】:Literal does not match format string字面量与格式字符串不匹配
【发布时间】:2012-01-04 04:32:46
【问题描述】:

我正在尝试在 oracle express 10 g 表中插入数据。

我的表格包含以下列:

Field Name                           Data Type

 ATDATE                               DATE
 ATTIME                               VARCHAR2(5)
 EMPNO                                NUMBER(8)
 INOUTIND                             CHAR(1)
 TRTNO                                CHAR(3)
 FLAG                                 NUMBER(2)
 STATUS                               CHAR(1)
 LUPDT                                DATE

现在,当我尝试从我的 C# Windows 应用程序插入数据时,出现错误

ORA-01861:文字与格式字符串不匹配”

那我该如何解决呢?

我正在使用OracleCommand 在表单本身中编写插入命令。


OracleCommand cmd = new OracleCommand("INSERT INTO TMPATND values(:Atdate,:Attime,:Empno,:Inoutind,:Trtno,:Flag,:Status,:Lupdt)", con); 

:Atdate,:Attime etc are parameters. e.g: cmd.Parameters.AddWithValue(":Atdate","20120103");

我应该以哪种格式传递日期? (dd/mm/yyyy 或 yyyymmdd 或其他)

【问题讨论】:

  • OracleCommand cmd = new OracleCommand("INSERT INTO TMPATND values(:Atdate,:Attime,:Empno,:Inoutind,:Trtno,:Flag,:Status,:Lupdt)", con); :Atdate,:Attime 等是参数。例如:cmd.Parameters.AddWithValue(":Atdate","20120103");

标签: c# oracle10g ora-01861


【解决方案1】:

如果使用参数执行插入,则不必担心字符串的格式。

但是,如果这不是一个选项,您可以使用:

myDate.ToString("dd-MMM-yy").ToUpper()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 2015-01-11
    • 2010-11-26
    • 2012-10-09
    相关资源
    最近更新 更多