简体   繁体   English

无法使用C#库更新Oracle DB中的行

[英]Cannot Update Row In Oracle DB Using C# Library

When I want to update row with type 'date' in oracle database through asp.net C# method it gives the following error: 当我想通过asp.net C#方法在oracle数据库中更新类型为'date'的行时,出现以下错误:

error: ORA-00932: inconsistent datatypes: expected NUMBER got TIMESTAMP 错误: ORA-00932:数据类型不一致:预期的NUMBER获得了时间戳

code: 码:

string query = String.Format("update mms_meetings m set m.end_date = :end_date where m.id = :id");

    OracleCommand cmd = new OracleCommand("", GetDBConnection());
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = query;

    OracleParameter opId = new OracleParameter();
    opId.DbType = DbType.Int32;
    opId.Value = meetId;
    opId.ParameterName = "id";

    cmd.Parameters.Add(opId);

    OracleParameter opDateEnd = new OracleParameter();
    opDateEnd.DbType = DbType.DateTime;
    opDateEnd.Value = dateEnd;
    opDateEnd.ParameterName = "end_date";
    cmd.Parameters.Add(opDateEnd);

    cmd.ExecuteNonQuery();
    cmd.Dispose();

    CloseDBConnection(); 

1) You must send the exact format for your date as specified in your table column. 1)您必须按照表格列中指定的日期发送准确的格式。 Check default format for your date column. 检查日期列的默认格式。 Like 喜欢

'yyyy/MM/dd'

2) If you are using OleDb or ODBC Connection, they both use positional parameters so order of adding the parameters is very important. 2)如果您使用的是OleDb或ODBC连接,它们都使用位置参数,因此添加参数的顺序非常重要。 Try changing the order of your parameter to see if it helps. 尝试更改参数的顺序以查看是否有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM