特别奇怪的问题:
.net连接oracle数据库,用程序包和存储过程来做,
存储过程参数为:
OracleParameter[] parameters={
new OracleParameter("p_CURSOR",OracleType.Cursor,2000,ParameterDirection.Output,true,0,0,"",
DataRowVersion.Default,Convert.DBNull),
new OracleParameter("p_CPDH",OracleType.NVarChar,30)
}; parameters[1].Value = Convert.ToString(partRevisionID);
return(RunProcedure("GetProcessMasterIDByCPDH",parameters,"gongyixinxi"));private OracleCommand BuildQueryCommand(string storedProcName,IDataParameter[] parameters)
{
OracleCommand command = new OracleCommand(storedProcName, Connection);
command.CommandType = CommandType.StoredProcedure ; foreach(OracleParameter parameter in parameters)//出错
{
command.Parameters.Add(parameter);      //出错
} return command;
}
运行到参数加载时出错,报错为System.InvalidCastException: 指定的转换无效。 at BITPDM.Data.DbObject_Oracle.BuildQueryCommand(String storedProcName, IDataParameter[] parameters) in E:\BITPDM\Modules\Core\DbObject_Oracle.cs:line 72 别的模块共用这种模式,都没问题,这属于一个类的页面有问题。难道是程序数据类型和数据库不匹配吗?
但是还没有执行command呀,急死了!