OracleParameter到Int32问题

时间:2012-07-04 08:57:44

标签: c# .net sql oracle11g

我有一个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”这里有什么问题?我用Google搜索但无法得出结论。

2 个答案:

答案 0 :(得分:1)

在此taskId.Value = taskId;中,您指定的taskId是OracleParameter类型的值taskID,它期望一个int值。换句话说,您正在为其value参数指定相同的内容。 由于您已经定义了taskId.DbType = DbType.Int32;,因此它需要一个int值,并且您可能会错过键入它以再次分配taskId

答案 1 :(得分:0)

添加调整您的查询

"Select id from Task where id = taskId";