我收到此錯誤(我用Oracle.DataAccess DLL):Oracle連接打開錯誤
{Oracle.DataAccess.Client.OracleConnection}
(Oracle.DataAccess.Client.OracleException).DataSource threw an exception of type 'System.NullReferenceException'
堆棧跟蹤:
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32
errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx*
pOpoSqlValCtx, Object src, String procedure, Boolean bCheck, Int32
isRecoverable)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,
OracleConnection conn, IntPtr opsErrCtx, Object src)
at Oracle.DataAccess.Client.OracleConnection.Open()
代碼:
using (OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["myConnection"].ConnectionString))
{
using (OracleCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "<<Procedure Name>>";
cmd.Parameters.Add("v_cur", OracleDbType.RefCursor).Direction = ParameterDirection.Output;
conn.Open(); --line throws exception
using (OracleDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
retVal = reader["VALUE"].ToString();
}
reader.Close();
}
}
}
任何輸入內容會有幫助嗎?謝謝。
您從未共享過實際的錯誤消息。 – mason
更新,謝謝。 – Sharpeye500
如果你還沒有,可以嘗試的一件事是運行DLL的託管(Oracle.ManagedDataAccess.dll)版本而不是非託管的版本,我發現它修復了我的一些奇怪的oracle連接問題。託管版本是自包含的,不依賴於Oracle客戶端,它可以在32位和64位無縫工作 – omaraguirre