无法使用Oracle.ManagedDataAccess和Windows本机验证

时间:2019-08-20 14:26:06

标签: c# oracle windows-authentication oracle-manageddataaccess

我无法使用Oracle.ManagedDataAccess和Windows本机身份验证连接到Oracle数据库。

我正在一个工作站上进行开发,我可以使用它通过PL / SQL Developer使用NTS以及使用非托管Oracle.DataAccess的C#代码从该数据库连接到同一数据库。这使我想到,数据库,工作站或帐户从根本上没有错。现在,我正在尝试评估是否可以在我们的解决方案中切换到Oracle.ManagedDataAccess。

到目前为止,我已经尝试了以下方法:

  • 创建了一个新的空白项目OracleManagedAccessTest
  • 在参考文献中添加了NuGet软件包Oracle.ManagedAccessTest v19.3.1(在撰写本文时为最新版本)
  • 更新App.config中的标记以匹配tnsnames.ora中的条目(以使C#项目自包含并且不依赖外部组件)
  • 在App.config的 <版本号=“ *”> 下添加了标记

我正在使用以下最少的代码来测试连接:

try
{
    using (OracleConnection conn = new OracleConnection("Data Source=EDBDEVD;User Id=/;"))
    {
        conn.Open();
    }
}
catch (OracleException ex)
{
    Console.WriteLine("Exception Message: " + ex.Message);
}

尝试连接失败,并出现以下错误:“ ORA-01017:无效的用户名/密码;登录被拒绝”

这看起来似乎太简单了,但我似乎无法解决它,也无法在线找到可行的解决方案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试这个:

string oradb = "Data Source=ORCL;User Id=hr;Password=hr;";

OracleConnection conn = new OracleConnection(oradb); // C#

conn.Open();

OracleCommand cmd = new OracleCommand();

cmd.Connection = conn;

cmd.CommandText = "select department_name from departments where department_id = 10"; cmd.CommandType = CommandType.Text;

OracleDataReader dr = cmd.ExecuteReader();

dr.Read();

label1.Text = dr.GetString(0);

另请参阅:https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/GettingStartedNETVersion/GettingStartedNETVersion.htm