无法使用C#Library在Oracle DB中更新行

时间:2014-03-27 07:25:13

标签: c# database oracle

当我想更新类型' date'在oracle数据库中通过asp.net C#方法,它给出了以下错误:

错误: ORA-00932:数据类型不一致:预期NUMBER获得TIMESTAMP

代码:

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 个答案:

答案 0 :(得分:2)

1)您必须发送表格列中指定的日期的确切格式。检查日期列的默认格式。像

'yyyy/MM/dd'

2)如果您使用的是OleDb或ODBC Connection,它们都使用位置参数,因此添加参数的顺序非常重要。尝试更改参数的顺序,看它是否有帮助。