کد متصل شدن به بانک اطلاعاتی اوراکل (oracle) در سی شارپ C#.Net
سلام بر کاربران پروگرم 98 امروز با یه کد سی شارپ دیگه در خدمتتون هستم …
امیدوارم که این کد به دردتون بخوره و مورد استفاده قرارش بدین.
سه روش اتصال به بانک اطلاعاتی اوراکل:
1- oracle .net data provider
2- OLE DB .net data provider
3- 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( );
}
}
}
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 به وسیله ی 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 استفاده میکنیم.
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)
)
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
که این اتصال به صورت پیش فرض از ارتباط با پورت 1521 صورت میگیره.