欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫

 更新時(shí)間:2022年05月26日 14:52:42   作者:springsnow  
這篇文章介紹了C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、概述

Oracle Data Provider for  .NET, Managed Driver:

Oracle官方的托管數(shù)據(jù)庫訪問組件,單DLL,Oracle.ManagedDataAccess.dll,不安裝Oracle客戶端,不區(qū)分32/64位, 直接引用即可。

與非托管程序?yàn)镺racle.DataAccess.dll相比,BulkCopy和CustomType之類的都是不支持的:

1、下載地址

官方下載地址:

http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html  (當(dāng)前下版本為64-bit ODAC 12.2c Release 1 (12.2.0.1.0))

nuget:

https://www.nuget.org/packages/Oracle.ManagedDataAccess/ (當(dāng)前下版本為19.7.0)

https://www.nuget.org/packages/Oracle.ManagedDataAccess.EntityFramework/ (當(dāng)前下版本為19.7.0)

下載好后  從這個(gè)目錄下 odp.net\managed\common拿出最關(guān)鍵的兩個(gè)dll

Oracle.ManagedDataAccess.dll 和 Oracle.ManagedDataAccess.EntityFramework.dll 。

也可以在項(xiàng)目Nuget中直接安裝這兩個(gè)包。

注意:如果需要Entity Framework 設(shè)計(jì)時(shí)特性和其他如TableAdapter向?qū)isual Studio設(shè)計(jì)器,可以從https://otn.oracle.com/dotnet下載32位的“Oracle Developer Tools for Visual Studio” 。

此NuGet下載不支持設(shè)計(jì)時(shí)工具;它只提供運(yùn)行時(shí)支持。這個(gè)版本的ODP.NET支持Oracle數(shù)據(jù)庫版本11.2或更高版本。

二、配置文件定義數(shù)據(jù)源

1、無配置文件情況,直接連接DB

無SQL*Net配置文件tnsnames.ora,直接在C#程序中寫連接字符串

string conString = "User Id=hr; password=hr;Data Source=localhost:1521/orcl; Pooling=false;";

2、使用配置文件方式:

1、使用 tnsnames.ora文件,此文件需放置在應(yīng)用程序同目錄:

tnsnames.ora內(nèi)容:

ORCL =
              (DESCRIPTION =
                (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
                (CONNECT_DATA =
                  (SERVER = DEDICATED)
                  (SERVICE_NAME = orcl)
                )
              )

2、使用app.config或\web.config配置文件定義別名(無tnsnames.ora文件)

<oracle.manageddataaccess.client>
  <version number="*">
    <dataSources>
       <dataSource alias="orcl" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME = orcl)))"/>
     </dataSources>
   </version>
 </oracle.manageddataaccess.client>

3、使用 TNS_ADMIN目錄:

<oracle.manageddataaccess.client>
  <version number="*">
    <settings>
           <setting name="TNS_ADMIN" value="C:\app\oracle\product\12.1.0\client_1\Network\Admin\"/>  
     </settings>
   </version>
 </oracle.manageddataaccess.client>

3、完整的app/web.config 文件:

<configuration>
    <configSections>
    <section name="oracle.manageddataaccess.client"
      type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
    </configSections>
    <system.data>
        <DbProviderFactories>
            <remove invariant="Oracle.ManagedDataAccess.Client"/>
            <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver"
                type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
        </DbProviderFactories>
    </system.data>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <publisherPolicy apply="no"/>
                <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral"/>
                <bindingRedirect oldVersion="4.121.0.0 - 4.65535.65535.65535" newVersion="4.122.19.1"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
    <oracle.manageddataaccess.client>
        <version number="*">
            <dataSources>
                <dataSource alias="SampleDataSource"
                    descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) "/>
            </dataSources>
        </version>
    </oracle.manageddataaccess.client>
</configuration>

三、使用

string conString = "User Id=hr; password=hr; Data Source=orcl;Pooling=false; ";

OracleConnection con = new OracleConnection();
con.ConnectionString = conString;
con.Open();

OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select first_name from employees where department_id = 60";

OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
    string conString = "User Id=hr; password=hr; Data Source=orcl;Pooling=false; ";

    OracleConnection con = new OracleConnection();
    con.ConnectionString = conString;
    con.Open();

    OracleCommand cmd = con.CreateCommand();
    cmd.CommandText = "select first_name from employees where department_id = 60";

    OracleDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
        Console.WriteLine("Employee Name: " + reader.GetString(0));
    }
    Console.WriteLine("Employee Name: " + reader.GetString(0));
}

到此這篇關(guān)于C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#Url操作類封裝、仿Node.Js中的Url模塊實(shí)例

    C#Url操作類封裝、仿Node.Js中的Url模塊實(shí)例

    這篇文章主要介紹了C#Url操作類封裝、仿Node.Js中的Url模塊,實(shí)例分析了C#Url操作類封裝的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2016-10-10
  • C# 使用 Castle 實(shí)現(xiàn) AOP及如何用 Autofac 集成 Castle

    C# 使用 Castle 實(shí)現(xiàn) AOP及如何用 Autofac 集成 Castle

    這篇文章主要介紹了C# 使用 Castle 實(shí)現(xiàn) AOP及如何用 Autofac 集成 Castle,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-02-02
  • 深入理解C#中常見的委托

    深入理解C#中常見的委托

    本篇文章是對(duì)C#中常見的委托進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建接口并調(diào)用的實(shí)例

    C#實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建接口并調(diào)用的實(shí)例

    這篇文章介紹了C#實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建接口并調(diào)用,文中通過實(shí)例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • 深入理解.NET中的異步

    深入理解.NET中的異步

    異步編程是程序設(shè)計(jì)的重點(diǎn),在實(shí)際的項(xiàng)目,在大量的數(shù)據(jù)入庫以及查詢數(shù)據(jù)并進(jìn)行計(jì)算的時(shí)候,程序的UI界面往往卡死在那里,這時(shí)候就需要對(duì)計(jì)算時(shí)間限制的過程進(jìn)行異步處理,同時(shí)正確的使用異步編程去處理計(jì)算限制的操作和耗時(shí)IO操作還能提升的應(yīng)用程序的吞吐量及性能
    2021-06-06
  • C#實(shí)現(xiàn)飛行棋游戲

    C#實(shí)現(xiàn)飛行棋游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)飛行棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#使用DevExpress中的SplashScreenManager控件實(shí)現(xiàn)啟動(dòng)閃屏和等待信息窗口

    C#使用DevExpress中的SplashScreenManager控件實(shí)現(xiàn)啟動(dòng)閃屏和等待信息窗口

    這篇文章介紹了C#使用DevExpress中的SplashScreenManager控件實(shí)現(xiàn)啟動(dòng)閃屏和等待信息窗口的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • c# 數(shù)據(jù)庫的 sql 參數(shù)封裝類的編寫

    c# 數(shù)據(jù)庫的 sql 參數(shù)封裝類的編寫

    c# 數(shù)據(jù)庫的 sql 參數(shù)封裝類的編寫...
    2007-12-12
  • 淺談C#2.0泛型中的變化:default關(guān)鍵字

    淺談C#2.0泛型中的變化:default關(guān)鍵字

    下面就詳細(xì)的說明一下。之所以會(huì)用到default關(guān)鍵字,是因?yàn)樾枰诓恢李愋蛥?shù)為值類型還是引用類型的情況下,為對(duì)象實(shí)例賦初值
    2013-09-09
  • C#異步調(diào)用的好處和方法分享

    C#異步調(diào)用的好處和方法分享

    我們要明確,為什么要進(jìn)行異步回調(diào)?眾所周知,普通方法運(yùn)行,是單線程的,如果中途有大型操作(如:讀取大文件,大批量操作數(shù)據(jù)庫,網(wǎng)絡(luò)傳輸?shù)龋紩?huì)導(dǎo)致方法阻塞,表現(xiàn)在界面上就是,程序卡或者死掉,界面元素不動(dòng)了,不響應(yīng)了
    2012-04-04

最新評(píng)論