我有以下 ASP.NET 程序,它调用 Oracle 存储过程:
Dim objDBCon As New OracleConnection(strCon)
Try
objDBCon.Open()
Dim objDBCmd As New OracleCommand("Person.DeletePerson", objDBCon)
objDBCmd.CommandType = CommandType.StoredProcedure
Dim objParam As New OracleParameter
objParam.ParameterName = "PersonID"
objParam.OracleDbType = OracleDbType.Varchar2
objParam.Direction = ParameterDirection.Input
objParam.Value = PersonID
objDBCmd.Parameters.Add(objParam)
objParam = New OracleParameter
objParam.ParameterName = "nReturn"
objParam.OracleDbType = OracleDbType.Int64
objParam.Direction = ParameterDirection.Output
objDBCmd.Parameters.Add(objParam)
objDBCmd.CommandTimeout = 30
objDBCmd.ExecuteNonQuery()
strResponse = objDBCmd.Parameters("nReturn").Value
Catch ex As Exception
Finally
'Cleanup code here
End Try
该代码在实时环境和我的旧开发 PC 上完美运行。但是,在我的新开发 PC 上,以下行引发异常:strResponse = objDBCmd.Parameters("nReturn").Value。异常是:“从OracleDecimal类型到String类型的转换无效。如果我将strResponse的数据类型更改为'Decimal',那么异常是:“从OracleDecimal类型到String类型的转换无效”。开发PC已安装以下内容:Windows 7、.NET Framework 3.5、Visual Studio 2008、Oracle.DataAccess 版本 10.2.0.100 和版本 2.112.1.0。我找不到有关此错误的任何信息。这是什么意思?
更新如果是因为我的新开发电脑是 64 位 Windows,我正在徘徊