Oracle Client Kurmadan Oracle Veritabanına C# ile Bağlanma

Bu makalede, Oracle Client kurmaya gerek olmadan ağ üzerindeki bir sunucuda bulunan Oracle veri tabanına bağlanabilen bir C# uygulamasını nasıl geliştireceğimizi anlatmaya çalışacağım.

Böyle bir uygulama, istemci bilgisayar üzerinde herhangi bir kurulum gerektirmeden yalnızca uygulama dosyalarını kopyalayarak Oracle veri tabanına bağlantı yapılmasına olanak sağlayacaktır. (Uygulama ile uyumluluk açısından, istemci bilgisayar üzerinde yalnızca .Net Framework güncellemesi gerekebilir.)

Aşağıda anlatacağım çözüm hem 11g hem de 12c versiyonları için geçerli olacaktır.

Adım 1
Öncelikle uygulama projemizde kullanmak üzere Oracle tarafından sağlanan bazı kütüphanelere (dll) ihtiyacımız var. Bu yüzden, ilk olarak işletim sisteminize uygun olan Oracle Data Access Components (ODAC) versiyonunu indirin. Bu makalenin yayınlandığı tarihte geçerli olan ODAC indirme linki aşağıdaki gibidir: http://www.oracle.com/technetwork/topics/dotnet/downloads/odacdeploy-4242173.html

Not: ODAC 32 bit versiyonu, hem 32bit hem de 64bit Oracle ile uyumlu çalışmaktadır. 64 bit versiyon ile yaptığım testlerde bazı problemlerle karşılaştım. Bu yüzden direk 32bit versiyonu indirerek deneme yapmanızı tavsiye ederim.

İndirme tamamlandıktan sonra zip dosyasını açarak aşağıda klasörleri ile birlikte listelediğim dll dosyalarını bir araya toplayın. İleriki adımlarda bu dll’leri Debug klasörü içine kopyalamamız gerekecek.

\instantclient_12_2\
oci.dll
orannzsbb12.dll
oraocci12.dll
oraocci12d.dll
oraociei12.dll
oraons.dll

\oramts\bin\
oramts.dll
oramts12.dll
oramtsus.dll

\odp.net4\odp.net\bin\4\
Oracle.DataAccess.dll

\odp.net4\bin\
OraOps12.dll

Adım 2
Visual Studio ile bir konsol uygulaması oluşturun. Ve birinci adımda listelediğimiz dll’leri, derleme sonrası oluşan ve çalıştırılabilir “.exe” dosyamızın bulunduğu “Debug” klasörüne kopyalayın. Sonra, “Oracle.DataAccess.dll”yi uygulama referanslarına ekleyin.

Adım 3
Aşağıdaki kodu, projenize kopyalayın. “Connection String” ve “namespace” değerlerini projenize göre düzenlemeyi unutmayın.

using System;
using Oracle.DataAccess.Client;
namespace MyConsoleApplication
{
	class Program
	{
		static void Main(string[] args)
		{
			string connectionString = "User Id=hr; Password=hr; Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = xe)));";
			
			using (OracleConnection connection = new OracleConnection())
			{
				connection.ConnectionString = connectionString;
				try
				{
					connection.Open();
					Console.WriteLine("Oracle connection is successful!");
				}
				catch (Exception ex)
				{
					Console.WriteLine("Error : " + ex.Message);
				}
				Console.ReadLine();
			}
		}
	}
}

Adım 4
“Project Properties” penceresinde “Build” tabında bulunan “Platform Target” değerini veri tabanımızın çalıştığı işletim sisteminin tipine göre seçiyoruz.

İşlem tamam. Artık uygulamamızı çalıştırıp Oracle Client’a gerek olmadan Oracle veri tabanı sunucusuna erişebiliriz.

Add a Comment

Your email address will not be published. Required fields are marked *