2012-07-04 46 views
0

我有一個SQL代碼如下:的OracleParameter到的Int32問題

public void UpdateDatabase(String strParam1, int row) 
     { 
      System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(); 
      conn.ConnectionString = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.144)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)));UID=mwm;PWD=mwm"; 
       conn.Open(); 
       OracleCommand command = conn.CreateCommand();      
       command.CommandText = "Select id from Task"; 
       OracleParameter taskId = new OracleParameter(); 
       taskId.DbType = DbType.Int32;       
       taskId.Value = taskId; 
       taskId.ParameterName = "taskId"; 
       command.Parameters.Add(taskId); 
       command.ExecuteNonQuery(); 
       command.Dispose(); 
      } 
     } 

當達到的ExecuteNonQuery時,我得到「無法參數值從的OracleParameter到的Int32轉換」這裏有什麼問題的錯誤?我Google搜索,但無法得出結論。

回答

1

在這taskId.Value = taskId;您正在分配taskId這是OracleParameter類型值taskID,它期待一個int值。換句話說,你正在爲它的值參數分配相同的東西。 由於您已經定義了:taskId.DbType = DbType.Int32;它期望的是一個int值,並且您可能會錯過鍵入它以再次分配taskId

0

添加調整您的查詢

"Select id from Task where id = taskId"; 
相關問題