c#调用oracle存储过程参数问题
我有一段调用oracle存储过程的c#代码,如下所示:
System.Data.OracleClient.OracleCommand CMD = new OracleCommand(fun_name, con);
         CMD.Connection = con;
         CMD.CommandType = System.Data.CommandType.StoredProcedure;
  CMD.Parameters.Add(new OracleParameter());
             CMD.Parameters[0].OracleType = OracleType.Number;
             CMD.Parameters[0].Direction = ParameterDirection.Input;
             //CMD.Parameters[0].ParameterName = "pi";
             CMD.Parameters[0].Value = "2";
             CMD.Parameters.Add(new OracleParameter());
             CMD.Parameters[1].OracleType = OracleType.VarChar;
             CMD.Parameters[1].Size = 20;
             CMD.Parameters[1].Direction = ParameterDirection.Input;
             //CMD.Parameters[1].ParameterName = "p2";
             CMD.Parameters[1].Value = "xx";
  CMD.ExecuteNonQuery();
其中有两行代码被注释了,运行时就会报错:参数个数或类型错误。
打开注释就没问题,可是我我又不想传递参数名称,如何处理呢?如果必须传递参数名称,在oracle中如何获取的存储过程的参数名称呢?多谢!
------解决方案-------------------- SqlServer中
Create PROCEDURE [dbo].[AddFile]
	@PortalId    int,
	@FileName    nvarchar(100),
	@Extension   nvarchar(100),
	@Size        int,
	@Width       int,
	@Height      int,
	@ContentType nvarchar(200),
	@Folder      nvarchar(200),
	@FolderID    int
AS
....
@PortalId这些就是参数名,Oracle中应该差不多吧。
------解决方案-------------------- 路过!!!!!!!!!!
------解决方案-------------------- 运行时就会报错:参数个数或类型错误。
你的写法是正确的,注意参数个数或类型。
或者你可以象下面这样写,一般来说不必把Parameter的属性都设上。
CMD.Parameters.Add(new OracleParameter("@pi", "2"));
------解决方案-------------------- 探讨  谢谢4楼的指点,我主要的问题在于传递参数时不想传递参数名称。 
------解决方案-------------------- 
oracle:
select t.object_name,t.argument_name,t.data_type,t.in_out  
from all_arguments t  
where t.owner='用户名' and  
     t.object_name='存储过程名' and  
     t.package_name='包名'
sql:
select * from syscolumns where ID in  
(SELECT id FROM sysobjects as a  
WHERE OBJECTPROPERTY(id, N'IsProcedure') = 1  
and id = object_id(N'[dbo].[存储过程名]'))
或者在C#中使用SqlCommandBuilder.DeriveParameters(SqlConnection);从数据库中映射
我的异常网推荐解决方案: oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html