如何从NET连接到Oracle 11数据库.网 [英] How to connect to Oracle 11 database from . net

查看:59
本文介绍了如何从NET连接到Oracle 11数据库.网的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

连接的最简单方法是什么. NET Web应用程序到Oracle 11g数据库? EntityFramework可以开箱即用地处理此问题吗?还是需要Oracle提供的某种排序或ODBC插件?

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

我当前正在运行VS2010,但我希望了解它们是否可以让我在VS2013上运行(无nuget).

解决方案

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

  • 带有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();
    

    (确切的驱动程序名称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();
    

  • 用于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();
    

  • 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();
    

  • Oracle的Microsoft .NET Framework数据提供程序(已弃用)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new System.Data.OracleClient.OracleConnection(connectString);
    con.Open();
    

  • .NET(ODP.NET)的Oracle数据提供程序

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Oracle.DataAccess.Client.OracleConnection(connectString);
    con.Open();
    

  • 用于.NET的Oracle数据提供程序,托管驱动程序(ODP.NET托管驱动程序)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Oracle.ManagedDataAccess.Client.OracleConnection(connectString);
    con.Open();
    

  • dotConnect for Oracle from Devart (以前称为OraDirect .NET,来自核心实验室)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Devart.Data.Oracle.OracleConnection(connectString);
    con.Open();
    

  • 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();
    

  • 带有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();
    

  • 进度

    中的ADO.NET DataDirect Connect

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new DDTek.Oracle.OracleConnection(connectString);
    con.Open();
    

  • 带有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();
    

  • 带有Oracle驱动程序的ODBC,来自 Easysoft (没有不适合我)

    var connectString = "Driver={Easysoft ODBC-Oracle Driver};Database=orcl1;Uid=scott;Pwd=secret;Server=orcl1;SID=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    

  • 具有Easysoft的Oracle WP Driver的ODBC(对我不起作用)

    var connectString = "Driver={Easysoft ODBC-Oracle WP Driver};Database=orcl1;Uid=scott;Pwd=secret;Server=orcl1;SID=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    

  • 来自 CData

    的Oracle OCI的ADO.NET提供程序

    var connectString = "Data Source=orcl1;User=scott;Password=secret";
    var con = new System.Data.CData.OracleOci.OracleOciConnection(connectString);
    con.Open();
    

  • 带有来自CData的Oracle OCI驱动程序的ODBC

    var connectString = "Driver={CData ODBC Driver for Oracle OCI};Data Source=orcl1;User=scott;Password=secret";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    

总体来说,它们都在工作.对于新应用程序,您应该使用 ODP.NET ODP.NET托管驱动程序. ODP.NET托管驱动程序是相当新的东西,仍然有一些局限性,还存在最新"错误.

"Devart","Progress","CData"和"Easysoft"是第三方提供商,可能需要支付额外费用.

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

What is the easiest way to connect a . NET web application to an Oracle 11g database? Can EntityFramework handle this right out of the box? Or will I need some sort or ODBC plugin from Oracle?

*I'm running from a locked down environment, so I can't really test any of these scenarios at this time.

I'm currently running VS2010, but I'm looking to see if they will let me run with VS2013 (no nuget).

解决方案

I know 16 ways to connect to an Oracle Database from a .NET application.

  • ODBC with driver from Oracle

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

    (exact driver name Oracle in OraClient11g_home1 depends on installed Oracle version)

  • ODBC with driver from Microsoft (only for 32bit, deprecated, does not work anymore with Oracle Client 18c or newer)

    var connectString = "Driver={Microsoft ODBC for Oracle};Uid=scott;Pwd=secret;Server=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    

  • Oracle Provider for OLE DB

    var connectString = "Provider=OraOLEDB.Oracle;Data Source=orcl1;Password=secret;User ID=scott";
    var con = new System.Data.OleDb.OleDbConnection(connectString);
    con.Open();
    

  • Microsoft OLE DB Provider for Oracle (only for 32bit, deprecated, does not work anymore with Oracle Client 18c or newer)

    var connectString = "Provider=MSDAORA;Data Source=orcl1;Password=secret;User ID=scott";
    var con = new System.Data.OleDb.OleDbConnection(connectString);
    con.Open();
    

  • Microsoft .NET Framework Data Provider for Oracle (deprecated)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new System.Data.OracleClient.OracleConnection(connectString);
    con.Open();
    

  • Oracle Data Provider for .NET (ODP.NET)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Oracle.DataAccess.Client.OracleConnection(connectString);
    con.Open();
    

  • Oracle Data Provider for .NET, Managed Driver (ODP.NET Managed Driver)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Oracle.ManagedDataAccess.Client.OracleConnection(connectString);
    con.Open();
    

  • dotConnect for Oracle from Devart (formerly known as OraDirect .NET from Core Lab)

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new Devart.Data.Oracle.OracleConnection(connectString);
    con.Open();
    

  • dotConnect Universal from Devart (uses deprecated 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();
    

  • ODBC with driver from Devart

    var connectString = "Driver={Devart ODBC Driver for Oracle};Uid=scott;Pwd=secret;Server=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    

  • DataDirect Connect for ADO.NET from Progress

    var connectString = "Data Source=orcl1;User ID=scott;Password=secret";
    var con = new DDTek.Oracle.OracleConnection(connectString);
    con.Open();
    

  • ODBC with driver from Progress

    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();
    

  • ODBC with Oracle Driver from Easysoft (did not work for me)

    var connectString = "Driver={Easysoft ODBC-Oracle Driver};Database=orcl1;Uid=scott;Pwd=secret;Server=orcl1;SID=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    

  • ODBC with Oracle WP Driver from Easysoft (did not work for me)

    var connectString = "Driver={Easysoft ODBC-Oracle WP Driver};Database=orcl1;Uid=scott;Pwd=secret;Server=orcl1;SID=orcl1";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    

  • ADO.NET Provider for Oracle OCI from CData

    var connectString = "Data Source=orcl1;User=scott;Password=secret";
    var con = new System.Data.CData.OracleOci.OracleOciConnection(connectString);
    con.Open();
    

  • ODBC with Driver for Oracle OCI from CData

    var connectString = "Driver={CData ODBC Driver for Oracle OCI};Data Source=orcl1;User=scott;Password=secret";
    var con = new System.Data.Odbc.OdbcConnection(connectString);
    con.Open();
    

In general all of them are working. For new application you should use ODP.NET or ODP.NET Managed Driver. ODP.NET Managed Driver is quite new and has still a few limitations and also the "newest" bugs.

"Devart", "Progress", "CData" and "Easysoft" are third party provider which may come with additional costs.

Apart from ODP.NET Managed Driver, Progress and Easysoft ODBC-Oracle WP Driver all drivers/providers need to have an Oracle (Instant-) Client installed.

这篇关于如何从NET连接到Oracle 11数据库.网的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆