2012-05-16 48 views
0

我有以下ASP.NET程序,它調用Oracle存儲過程:Microsoft.NET和Oracle數據訪問:從類型OracleDecimal轉換鍵入字符串無效

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類型無效「。已安裝以下軟件:Windows 7,.NET framework 3.5,Visual Studio 2008,Oracle.DataAccess版本10.2.0.100和版本2.112.1.0。我找不到關於此錯誤的任何信息。我遊蕩,如果是因爲我的新開發的電腦是64位Windows

+0

這似乎是對SA我對我錯誤?這意味着strResponse可能不是這裏的問題 – jeschafe

回答

0

,而不是設置的:

objParam.OracleDbType = OracleDbType.Int64 

嘗試:

objParam.DbType = System.Data.DbType.Int64 

此外,您可能需要更改:

strResponse = objDBCmd.Parameters("nReturn").Value 

要:

strResponse = objDBCmd.Parameters("nReturn").Value.ToString() 

或者:

strResponse = objDBCmd.Parameters("nReturn").ToString() 
相關問題