解密ODP.net触发的堆栈跟踪错误?

时间:2013-06-19 20:02:40

标签: c# oracle odp.net

我正在使用ODP.net连接到Oracle架构,并继续触发以下错误跟踪:

   ORA-6413: Connection not open.
   at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(
      Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure)
   at Oracle.DataAccess.Client.OracleException.HandleError(
      Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
   at Oracle.DataAccess.Client.OracleConnection.Open()

我完全不知道为什么我正在使用的应用程序无法建立连接。我对Oracle特定错误代码的理解是有限的,因此非常感谢任何可以共享的洞察力。

我已经通过登录SQL + plus测试了登录凭据和TNS设置,这些都是正确的。

我使用的连接字符串格式是:

    user id=[userid];
    password=[password];
    data source=//[machine ID]:[port]/[service name]

我正在使用10.2.0.100版本的OracleDataAccess.dll。

我可以为敢于尝试解决此问题的人提供更多信息。任何输入都非常感激 - 我一直在为此困惑太久了!

1 个答案:

答案 0 :(得分:0)

根据您的错误消息:“ORA-6413:连接未打开。”您的代码可能只是忽略了打开数据库连接。

您的代码应如下所示:

using(OracleConnection _dbConnection = /*...setup connection object here...*/)
{
    _dbConnection.Open();
    var cmd = _dbConnection.CreateCommand();
    cmd.CommandText="some sql here";
    cmd.ExecuteReader();

    //... do "stuff" and then close your reader and connection...
}