如何从NET连接到Oracle 11数据库。净

JDS*_*JDS 3 .net oracle oracle11g

连接的最简单方法是什么。NET Web应用程序到Oracle 11g数据库?EntityFramework可以立即解决此问题吗?还是我需要Oracle的某种排序或ODBC插件?

*我是在锁定环境中运行的,因此我目前无法真正测试任何一种情况。

我目前正在运行VS2010,但是我正在查看它们是否可以让我与VS2013一起运行(无nuget)。

Wer*_*eit 6

我知道从.NET应用程序连接到Oracle数据库的十二种方法。

  • 带有Oracle驱动程序的ODBC

    var connectString = "Driver={Oracle in OraClient11g_home1};Uid=scott;Pwd=secret;DBQ=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)

    (确切的驱动程序名称Oracle in OraClient11g_home1取决于安装的Oracle版本)

  • 带有Microsoft驱动程序的ODBC(仅适用于32位,已弃用,在Oracle Client 18c或更高版本中不再起作用)

    var connectString = "Driver={Microsoft ODBC for Oracle};Uid=scott;Pwd=secret;Server=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • OLE DB的Oracle提供程序

    var connectString = "Provider=OraOLEDB.Oracle;Data Source=orcl1;Password=secret;User ID=scott";
    var con = new System.Data.OleDb.OleDbConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • 适用于Oracle的Microsoft OLE DB提供程序(仅适用于32位,已弃用,不适用于Oracle Client 18c或更高版本)

    var connectString = "Provider=MSDAORA;Data Source=orcl1;Password=secret;User ID=scott";
    var con = new System.Data.OleDb.OleDbConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • 适用于Oracle的Microsoft .NET Framework数据提供程序(已弃用

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new System.Data.OracleClient.OracleConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • 适用于.NET(ODP.NET)的Oracle数据提供程序

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Oracle.DataAccess.Client.OracleConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • 适用于.NET的Oracle数据提供程序,托管驱动程序(ODP.NET托管驱动程序)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Oracle.ManagedDataAccess.Client.OracleConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • 来自Devart的 dotConnect for Oracle (以前称为Core Lab的OraDirect .NET)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Devart.Data.Oracle.OracleConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • Devart的dotConnect Universal(已弃用System.Data.OracleClient

    var connectString = "Provider=OracleClient;Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Devart.Data.Universal.UniConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • 具有Devart驱动程序的ODBC

    var connectString = "Driver={Devart ODBC Driver for Oracle};Uid=scott;Pwd=secret;Server=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • DataDirect Connect for ADO.NET的进展

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new DDTek.Oracle.OracleConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)
  • 具有Progress驱动程序的ODBC

    var connectString = "Driver={DataDirect 8.0 Oracle Wire Protocol};Uid=scott;Pwd=secret;ServerName=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    
    Run Code Online (Sandbox Code Playgroud)

总的来说,他们都在工作。对于新应用程序,应使用ODP.NETODP.NET托管驱动程序ODP.NET托管驱动程序是一个相当新的功能,仍然存在一些局限性以及“最新”错误。“ Devart”和“ Progress”是第三方提供商,可能需要支付额外费用。

除了ODP.NET托管驱动程序和进度外,所有驱动程序/提供程序都需要安装Oracle(即时)客户端。