0

次のようなSQLコードがあります。

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 に変換できませんでした」というエラーが表示されます。私はグーグルで検索しましたが、結論に達することができませんでした。

4

2 に答える 2

1

これでは、 OracleParameter タイプの値をtaskId.Value = taskId;割り当てていますが、 int 値が必要です。つまり、値パラメーターに同じものを割り当てています。あなたが定義したので: それは int 値を期待しています。taskIdtaskIDtaskId.DbType = DbType.Int32;taskId

于 2012-07-04T09:01:46.910 に答える
0

クエリを調整する

"Select id from Task where id = taskId";
于 2012-07-04T09:02:35.757 に答える