# پایگاه‌های داده > سایر پایگاه‌های داده > Oracle > سوال: نحوه اتصال به oracle در C#‎ بدون tnsnames

## anahid.goudarzi

سلام و خسته نباشید
من میخوام به دیتابیس اوراکلم که توی سرور لینوکس هست وصل بشم.
Connection String هایی که هست Client Side هستند که من مجبورم روی هر کلاینتی که میخوام برنامم اجرا بشه باید Oracle Client رو نصب کنم ، که این مشکل هست. بنابراین میخوام مستقیم به سرور وصل بشم به طوری که نیازی به نصب Oracle روی هر سیستم نباشه.
ممنون میشم راهنماییم کنید.

----------


## mosasad

با سلام 

ببخشید تاپیک مناسب و من پیدا نکردم 
میخواستم به بانک اوراکلم که "در سرور " نصب شده اتصال بدم در php که با ارور Fatal error: Call to undefined function oci_connect() مواجه میشم البته فایل php.ini رو هم درست کردم 
میخواستم ببینم باید اوراکل رو توی سیستم خودمم نصب کنم تا این مشکل حل بشه یا نه 

خواهشا کمک کنید

----------


## رسول_57

> سلام و خسته نباشید
> من میخوام به دیتابیس اوراکلم که توی سرور لینوکس هست وصل بشم.
> Connection String هایی که هست Client Side هستند که من مجبورم روی هر کلاینتی که میخوام برنامم اجرا بشه باید Oracle Client رو نصب کنم ، که این مشکل هست. بنابراین میخوام مستقیم به سرور وصل بشم به طوری که نیازی به نصب Oracle روی هر سیستم نباشه.
> ممنون میشم راهنماییم کنید.


با سلام 

اگر برنامه تان را هم بر روی سرور می نویسید حتما باید از اوراکل کلاینت استفاده کنید اما اگر برنامه محلی هست می توانید از پرووایدرهای معمولی مانند ODBC استفاده کنید و در مواردی مانند برنامه نویسی PHp می توانید از Instant Client هم استفاده کنید .

----------


## رسول_57

> با سلام 
> 
> ببخشید تاپیک مناسب و من پیدا نکردم 
> میخواستم به بانک اوراکلم که "در سرور " نصب شده اتصال بدم در php که با ارور Fatal error: Call to undefined function oci_connect() مواجه میشم البته فایل php.ini رو هم درست کردم 
> میخواستم ببینم باید اوراکل رو توی سیستم خودمم نصب کنم تا این مشکل حل بشه یا نه 
> 
> خواهشا کمک کنید


با سلام 

Instant client  را نصب کنید مشکل حل می شود

----------


## babila

کتابخانه Oracle.ManagedDataAccess.dll رو هم می تونید استفاده کنید بدون نیاز به نصب اوراکل کلاینت یا هر پروایدر دیگه ای.
کانکشن استرینگ اش هم به صورت ذیل می باشد.
connection string=&quot;DATA SOURCE=192.168.1.1:1521/dbname;PASSWORD=123;USER ID=user;

----------


## ahmari.f

> کتابخانه Oracle.ManagedDataAccess.dll رو هم می تونید استفاده کنید بدون نیاز به نصب اوراکل کلاینت یا هر پروایدر دیگه ای.
> کانکشن استرینگ اش هم به صورت ذیل می باشد.
> connection string=&quot;DATA SOURCE=192.168.1.1:1521/dbname;PASSWORD=123;USER ID=user;



سلام. وقت بخیر. میشه در رابطه با این روش یکم بیشتر توضیج بدین ؟ 
همین که using Oracle.DataAccess.Client بالای پروژه اضافه بشه کافیه یا کار دیگه ای هم باید کرد؟
و اینکه من با این connection string  نوشتم ولی خطا میده و وصل نمیشه.

----------


## rezayeman

توی سیستم اینترنت فعال کنید
توی ویژوال استودیو از منوی Tools>Nuget Package Manager>Nuget Package Console  باز کنید
توی خط فرمان کنسول منیجر این عبارت وارد کنید.     Install-Package Oracle.ManagedDataAccess

با این کار dll مربوط به Oracle.ManagedDataAccess توی refrence برنامه اضافه میشه. علاوه بر اون به فولدر به نام Package توی فولدر پروژه درست میشه.

حالا به پروژه دو تا فولدر با نام های x86 و x64 اضافه کن
روی فولدر x64 راست کلیک کن Add>Existing Item انتخاب کن
فولدر پروژه و فولدر پکیج یعنی مسیر روبه رو طی کن Project Foder Name\packages\Oracle.ManagedDataAccess.19.3.0\bin\  x64
نکته : حتما نوع فایل انتخابی روی All File بزارین
 از مسیر بالا فایل Oracle.ManagedDataAccessIOP.dll انتخاب کنید تا به فولدر x64 اضافه بشه. 
روی فایل اضافه شده کلیک کن . از قسمت Prppertyها گزینه Copy Output Directory را روی Copy Always ست کن
این کار را دقیقا برای فولدر x86 هم تکرار کن. فقط حواست باشه مسیر dll انتخابی میشه Project Foder Name\packages\Oracle.ManagedDataAccess.19.3.0\bin\  x86

خوب تا اینجای کار تنظیماتت انجام شد. حالا نوبت مبرسه به کانکشن استرینگ که اونم به صورت زیر ست کن.

        private string GetconnectionString(string Username, string Password)        {
            return String.Format("Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = HostName)(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = SERVICE_NAME)));" +
            "User Id={0};Password={1};", Username, Password);
        }


فقط حواست باشه قسمت های HOST و PORT و SERVICE_NAME نسبت به سرور بانک خودت تنظیم کن. البته پورت معمولا 1521 هستش.

با این کار دیگه احتیاج به اوراکل کلاینت نیست. 

مشکلی بود در خدمتتم.

موفق باشید

----------


## asbous.saeid

سپاس بی کران :قلب:

----------

