2014-03-27 89 views
1

當我想通過asp.net C#方法來更新與Oracle數據庫型「日期」排它提供了以下錯誤:無法更新行中的Oracle數據庫使用C#庫

錯誤: ORA-00932:不一致的數據類型:預期數量得到了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(); 
+2

哪種類型的是'在你的數據庫end_date'? –

+1

嘗試改變順序要添加參數,在查詢中使用的順序 - 第一個'end_date','id' - 第二。 – Mikhail

+0

@Mikhail Oracle不使用參數名稱區分恰當的呢? –

回答

2

1)在表列中指定。您必須將正確的格式爲你的約會。檢查日期列的默認格式。像

'yyyy/MM/dd' 

2)如果你正在使用的OleDb或ODBC連接,它們都使用位置參數所以順序添加參數是非常重要的。嘗試改變參數的順序,看看它是否有幫助。