2011-08-18 20 views
1

我得到了以下错误:的OracleParameterCollection只接受非空的OracleParameter类型的对象,没有对象的OracleParameter

的OracleParameterCollection只接受非空的OracleParameter类型的对象,没有对象的OracleParameter。

的代码是这样的:

System.Data.Common.DbCommand dbCommand = Db.GetStoredProcCommand("ARCHIVE.FSP_STACKHOLDERSBYCREDENTIALS"); 
dbCommand.Parameters.Add(new OracleParameter("P_Password", password)); 

我的Oracle DB是:在Windows上运行64位11gR2的7(64位) 我的项目是:.NET 4.0/Visual Studio 2010中(编译:任何CPU) IIS 7.5 /应用程序池:默认(asp.net4.0 /集成) 我ODP.Net来自:ODAC112021Xcopy_32bit

注意:我无法将Oracle.DataAccess.dll改变到x64版本监守项目取决于一些老的dll(这是因为改变t o使用Oracle.DataAccess.dll x64版本,需要将PlatformTarget转换为x64)

那么我该怎么做? 在此先感谢

+0

是在这种情况下密码null的值? – Eddy

+0

不!它有价值 –

+0

从错误我知道你使用的构造函数无法确定传递的密码相应的OracleType。您可以尝试使用其中一个构造函数,您明确指定OracleType并查看是否可以解决您的问题 – Eddy

回答

1

问题是我自己的!我错误地配置了Db.GetStoredProcCommand()函数。这会导致创建来自Microsoft提供程序而不是Oracle客户端提供程序的System.Data.Oracle.OracleCommand。 但是,异常的文本是真的让人误解!

相关问题