PDA

View Full Version : سوال: تفاوت بین دو نوع کانکشن استرینگ اتصال به سرور یا اتصال به فایل در پایگاه داده SQLServer



rezankh
دوشنبه 03 شهریور 1393, 18:53 عصر
با سلام
من نرم افزاری رو آماده کردم که همه کارش با دیتابیس Sqlserver هست. کانکشن استرینگ رو هم بصورت زیر ایجاد کردم :

SqlConnection my_cn = new SqlConnection("server = .\\MSSQLSERVER2008;database=HarmDatabase;Integrate d Security=True;");

و نیز احتمالا ممکنه بصورت شبکه هم استفاده بشه(شاید).
از طرفی در بعضی منابع دیدم که بجای اتصال به سرور از اتصال به فایل mdf داخل دایرکتوری برنامه استفاده کردند. می خواستم قبل اینکه برنامم رو ستاپ کنم تفاوت بین این دو برام مشخص بشه و بدونم که کدوم بهتره و مزایا و معایبشون چیه؟
البته داخل سایت جستجو کردم که توضیح کلی در مورد مزایا و معایب استفاده از هر کدوم رو پیدا نکردم.
با تشکر.

aghayex
دوشنبه 03 شهریور 1393, 19:52 عصر
از طرفی در بعضی منابع دیدم که بجای اتصال به سرور از اتصال به فایل mdf داخل دایرکتوری برنامه استفاده کردند

سوالتون رو متوجه نشدم
ببینید وقتی شما دارید از دیتابیس اس کیو ال استفاده می کنید 2 حالت داره :
1: دیتابیس شما با پسوند SDF هست که یه نوع بانک کوچیک مثل اکسس هست و برای استفاده ز اون نیاز به برنامه اس کیو ال نیست
2 : دیتابیس شما با پسوند MDF و LDF هست در این حالت شما سه حالت دارید :
الف : می خواهید از نسخه اکسپرس اس کیو ال استفاده کنید , کاه در این حالت فقط کافیه برنامه SQL Exprees رو نصب کنید و نیاز به اتچ کردن دیتابیس ندارید و قاعدتا کانکشن استرینگ اون هم متفاوت هست .
ب : می خواهید از نسخه های غیر اکسپرس اس کیو ال استفاده کنید که در این حالت شما باید ابتدا یکی از نسخه های برنامه SQL رو نصب و دیتابیس رو اتچ کنید و کانکشن استرینگ مخصوص این حالت رو هم تنظیم کنید .
حالا شاید بپرسید که چه تفاوتی بین نسخه اکسپرس و دیگر نسخه ها داره ؟ به طور خلاصه یک سری امکانات رو به صورت محدود در اختیارتون میزاره مثل حجم دیتابیس نمی تونه تا فلان حجم باشه و ... ( برید مطالعه کنید )
ج) در این حالت هیچ تفاوتی با حالت ب نیست و فقط کافیه در کانکشن استرینک ای پی سرور و چند تنظیم دیگه تغییر کنه همین .

fakhravari
دوشنبه 03 شهریور 1393, 20:54 عصر
public static string GetConnectionString { get { return File.ReadAllLines(@"Database\File.txt")[0]; } }

rezankh
دوشنبه 03 شهریور 1393, 22:02 عصر
با تشکر از توجه تون.
این کانکشن مربو به کدوم نوع SQL هست؟
>

connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirector y|\MyDatabase.mdf;Database=MyDatabaseForTesting;Tr usted_Connection=Yes;"

rezankh
سه شنبه 04 شهریور 1393, 09:59 صبح
طوری که متوجه شدم کانکشن فوق مربوط به اتصال به SQLServer Express هست. درسته؟ بواقع نحوه اتصال به دیتابیس در SQLServer Express همین روش هست.
حالا اگه من از نسخه اینترپرایس استفاده کنم دیگه نیازی به گذاشتن فایلهای mdf و ldf در دایرکتوری برنامه نیست و باید دیتابیس رو در هنگام لود شدن اولیه برنامه در نسخه اینترپرایس سیستم مقصد ری استور کنم درسته؟

aghayex
چهارشنبه 05 شهریور 1393, 19:44 عصر
نگاه کنید شما در هر صورتدو فایل که دیتابیس شماست رو دارید در نحوه اتصال به صورت اکسپرس در کانکشن استرینگ آدرس فایل رو ذکر می کنی اما در انواع دیگه میای به اصطلاح اتچ می کنی یعنی اس کیو ال رو اجرا و بعد مراحل اتچ یک دیتابیس رو یک بار برای همیشه انجام می دی که در این مرحله آدرس فایل رو هم از شما می خواد .