روشهای اتصال به بانکهای اوراکل :

کد:
Oracle .NET data provider
OLE DB .NET data provider
ODBC .NET data provider
در مثال زیر به تمام راههای بالا اشاره شده است.

کد:
using System;
using System.Data.OracleClient;
using System.Data.OleDb;
using System.Data.Odbc;

namespace ConnectOracle
{
class Program Interprocess communication (IPC)
{
static void Main(string[] args)
{
// Connect using .NET data provider for Oracle
string oracleConnectString =
"Data Source=ORCL;User Id=hr;Password=password;";

using (OracleConnection connection =
new OracleConnection(oracleConnectString))
{
connection.Open( );

// Return some information about the server.
Console.WriteLine("---Microsoft .NET Provider for Oracle---");
Console.WriteLine("ConnectionString = {0}\n", oracleConnectString);
Console.WriteLine("State = {0}", connection.State);
Console.WriteLine("DataSource = {0}", connection.DataSource);
Console.WriteLine("ServerVersion = {0}", connection.ServerVersion);
}

// Connect using .NET data provider for OLE DB.
string oledbConnectString =
"Provider=MSDAORA;Data Source=ORCL;User Id=hr;Password=password;";

using (OleDbConnection connection =
new OleDbConnection(oledbConnectString))
{
connection.Open( );

// Return some information about the server.
Console.WriteLine("\n---Microsoft .NET Provider for OLE DB---");
Console.WriteLine("ConnectionString = {0}\n", oledbConnectString);
Console.WriteLine("State = {0}", connection.State);
Console.WriteLine("DataSource = {0}", connection.DataSource);
Console.WriteLine("ServerVersion = {0}", connection.ServerVersion);
}

// Connect using .NET data provider for ODBC
string odbcConnectString = "Driver={Oracle in OraDb10g_home1};" +
"Server=ORCL;uid=hr;pwd=password;";

using (OdbcConnection connection =
new OdbcConnection(odbcConnectString))
{
connection.Open( );

// Return some information about the server.
Console.WriteLine("\n---Microsoft .NET Provider for ODBC---");
Console.WriteLine("ConnectionString = {0}\n", odbcConnectString);
Console.WriteLine("State = {0}", connection.State);
Console.WriteLine("DataSource = {0}", connection.DataSource);
Console.WriteLine("ServerVersion = {0}", connection.ServerVersion);
}

Console.WriteLine("\nPress any key to continue.");
Console.ReadKey( );
}
}
}
روش اول Oracle .NET data provider یا همان Native Oracle:
Oracle .NET data provider با استفاده از OCI(Oracle Call Inteface) و از طریق ابزارهای ارتباطی برای کلاینت (Oracle client connectivity software) به بانکهای اطلاعاتی اوراکل دسترسی دارد.این پروایدر به اوراکل 7.3.4 (یا ورژنهای بالاتر) می تواند دسترسی داشته باشد ,همچنین به Oracle 8i Release 3 (8.1.7) client software (یا ورژنهای بالاتر) نیازدارد.تمام کلاسهای مورد نیاز در فضای نام System.Data.OracleClient قرار دارد

مثالی از رشته اتصال که از Integrated Security استفاده کرده است

کد:
Data Source=ORCL;Integrated Security=yes;
و بدون استفاده از Integrated Security

کد:
Data Source=ORCL;User Id=hr;Password=password;
معمولاً روش Native بهتر از دو روش دیگر است .چون این این روش مخصوص این نوع بانک اطلاعاتی است و برای آن بهینه شده است(تمام لایه های غیر مرتبط با این نوع دیتا حذف شده است)

روش دوم OLE DB:
در این روش برای دسترسی به بانکهای اطلاعاتی اوراکل از Oracle OLE DB provider (MSDAORA) استفاده می کنیم.

کد:
Provider=MSDAORA;Data Source=myOracleDb;User Id=hr;Password=password;
معمولاً از این روش برای ایجاد یک پل ارتباطی با برنامه ای که از OLE DB استفاده می کند , بکار می رود.

روش سوم OLE DB:
و در پایان با استفاده از ODBC .NET data provider نیز می توان به بانکهای اوراکل متصل شد . به عنوان مثال رشته اتصال به بانک اطلاعاتی در Oracle 10g به صورت زیر است.

کد:
"Driver={Oracle in OraDb10g_home1};Server=ORCL;uid=hr;pwd=password;";
از این روش نیز برای ایجاد یک پل ارتباطی با برنامه ای که از ODBC استفاده می کند , بکار می رود.
بنابراین در صورت امکان برای اتصال به این بانکها از روش Native استفاده کنید.

نکته:اوراکل از یک فایل پیکر بندی(با نام TNSNAMES.ORA در محل بانک اطلاعاتی)برای تعیین نحوه ارتباط با آن استفاده می کند.
مثالی از محتویات این فایل برای alias ORCL :

کد:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)