要約:
当社の開発シナリオでは、多くの場合、非常に一般的な状況であるOracleデータベースに接続する必要性が発生しました。一般的な.NET環境は、TNS / SQL.NET設定ファイルによって、Oracleデータベースへの接続が、TNS Oracleクライアントがなければなりません。
シーン、Microsoft自身の使用をたくさん使うSystem.Data.OracleClient.dllへの時間は(伝え今維持されていない)、Oracleクライアントをインストールしていないサーバー上のランは、あなたは、Oracleクライアントをインストールするように要求されますが、Oracleの12でこの方法の将来のバージョンではほとんど使用されません。
シーン二つの、直接の下にOracleクライアントを呼び出すために多くの人々があるOracle.DataAccess.dll(通常は\ Oracleのインストールディレクトリ製品\ 11.2.0 \ dbhome_1 \ ODP.NETでビン\ 2.xではそれらが)。プロバイダは、マシンのOracleの次の(一般的な検査と互換性がありません、あなたはOracleクライアントのこのバージョンでOracle.DataAccess.dll:しかし、プログラムの実行時に、場合であってもよいし、Oracle.DataAccess.Client.OracleExceptionエラーが最もヒットOracle.DataAccess.dll基準バージョンが同じではない、置換の同じバージョン)が問題を解決します。
以下は説明し、あなたが直接、最新のODP.Net道(Oracle.ManagedDataAccess.dll)を介してOracleデータベースに接続し、Oracleクライアントをインストールする必要はありません。
Oracleの完全管理ドライブOracle.ManagedDataAccess
Oracleの公式ウェブサイトは完全にホスティングドライブOracle.ManagedDataAccessを管理するC#ODP.Netのための新しい方法を提供し、EFもありません、あなたはOracleがジョブのアカウントダウンロードする必要がある場合、見つけるのは非常に簡単正式アドレス(アドレスをダウンロードし、分散トランザクションをサポートしていますレジスタ)も非常に高速である場合-ポータル:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html、示すように:
ダウンロード抽出物は、我々はあなたがEFフレームを使用している場合は、図に示すように、DLL EF6を選択し、見つける必要がありOracle.ManagedDataAccess.dll:
Oracle.ManagedDataAccess.dllは、接続が成功したOracleのかどうかをテスト、リンクの下にして、私たちのプロジェクトを参照してください。
スニペット:
1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 using Oracle.ManagedDataAccess.Client; 8 9 namespace ForbiddenTools 10 { 11 class Program 12 { 13 static void Main(string[] args) 14 { 15 Console.Title = "Oracel连接测试"; 16 string connString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=服务器IP地址)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = 服务器名称)));User Id=用户名;Password=密码;"; 17 OracleConnection conn = new OracleConnection(connString); 18 conn.Open(); 19 if (conn.State == ConnectionState.Open) 20 { 21 string sql = @"select sysdate from dual"; 22 OracleCommand cmd = new OracleCommand(sql, conn); 23 Console.WriteLine(cmd.ExecuteScalar()); 24 conn.Close(); 25 } 26 Console.ReadKey(); 27 } 28 } 29 }
PS:如有疑问,请留言,未经允许,不得私自转载,转载请注明出处:http://www.cnblogs.com/xuliangxing/p/8391547.html