# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > دسترسی به داده ها (ADO.Net و LINQ و ...) >  تفاوت بين فايل هاي ديتابيس يا پسوند mdf و sdf

## alih988

به نام خدا

سلام و عرض ادب خدمت شما.

من قبلا فقط با بانک اکسس کار می کردم ، ولی اخیرا مجبور شدم که به سمت اس-کیو-ال برم.

متاسفانه خیلی از مفاهیم را نمی دانم .
1- اینکه بانک اس-کیو-ال با پسوند mdf چه فرقی با بانک sql با پسوند sdf دارد ؟

***ویرایش شده توسط مدیربخش***.


خیلی ممنون می شوم اگر لطف کنید و حقیر را راهنمایی بفرمایید

----------


## night_walker

با سلام
مشکل شما یکی دو تا نیست. من فکر کنم که به یک کتاب احتیاج دارید. :چشمک: 

1.در مورد فایل MDF این فایل برای SQL Server معمولی است و برای اجرا شدن به سرویس SQL Server احتیاج داره ولی فایل SDF برای نسخه موبایل بیشتر کاربرد داره و شما باید از همون MDF استفاده کنی.
2. در مورد Connection از SQL server Express زمانی استفاده می کنید که از دیتابیس به صورت Local بخواهید استفاده کنید مثل همون Acces با این کار باید یک کپی از دیتا بیس روی هر کامپوتر کپی بشه. اگه بخواهید در شبکه استفاده کنید باید ابتدا SQL Server رو نصب کنید و بعد از SQL Client استفاده کنید اون آخری هم برای ورژن موبایل هست.
3. اون Connection String که استفاده کردید درسته فقط روی هر کامپیوتری که میخواهید اجرا بشه باید SQL Server Express را نصب کنید. در ضمن شما میتونید ابتدا با SQL server Express کار کنید و هر وقت که به کار در محیط شبکه احتیاج داشتید فایل MDF  ور به SQL Server متصل(Attach) کنید.
4. اون دیتا بیسی که در serverExplorer میبیند همونی که باهاش کار میکنید فقط شما در تنظیماتتون یک کپی از فایل MDF رو به شاخه اجرایی برنامه کپی میکنید و همین باعث میشه که اطلاعاتی که در آن ذخیره کردید نمایش داده نشه. برنامه رو Comile کنید و بعد اون رو از شاخه خودش اجرا کنید اطلاعات درست ذخیره میشه.

----------


## night_walker

در مورد 5 بگم که این کار را هم میتونید در محیط Visual Stuio انجام دهید هم در SQL Server Managment Studio ولی Managment Studio امکانات بیشتری داره ولی باید قبلش SQL Server رو نصب کرده باشید. من شخصا Managment Studio رو ترجیح میدم ولی اگه زیاد باهاش کاری ندارید و فقط به صورت Local استفاده دارید، از همون Visual Studio استفاده کنید.
6.موارد گفته شده با هم فرق زیادی دارند Command.Executenonquery مستقیما دستور را در SQL اضافه میکند که نسبت به Data Adapter سرعت بیشتری داره ولی زیاد توصیه نمیشه چون دیگه برنامه نویسی به صورت سه لایه امکان نداره. توضیح تمامی مزیتها ومعایبش یک کتاب میخواد ولی تا جایی که میتونید از همون Data Adabter استفاده کنید.
موفق باشید.

----------


## alih988

به نام خدا

خیلی ممنونم از شما دوست عزیز... ، در ضمن منظور از بانک local چیست ؟

آیا بانک همراه با برنامه کامپایل می شود ؟ یا یک مز مجزا است؟

مثلا اگر می بخواهم بیایم بانکم را در درایو D کپی کنم و از آنجا خوانده شود ، فقط کافی است همان فایل با پسوند mdf  را در مسیر مورد نظرم کپی کنم ؟ و کانکشن استرینگ را هم مسیر آنجا را بدهم ؟

اگر این کار را بکنم دیگه همه چیز حله ؟ 

در صمن من یکبار این کار را انجام دادم ، یعنی بانک ا به مسیر خاصی منتقل کردم ، بعد که خواستم ارتباط برقرار کنم ، خطا داد که table ایجاد شده ( که قبلا موجود بود) موجود نیست!

ولی یک سوال ایجا ایجاد می شود که چطور این بانک را که مسیرش را تغییر دارم در داخل ویژوال استودیو ویرایش کنم ؟

----------


## night_walker

منظور از بانک Local بانکی هست که فقط روی یک کامپیوتر قرار داره و بقیه کامپیوترهای شبکه بهش دسترسی ندارند.
بانک همراه برنامه کامپایل نمیشه و به صورت فایلهای مجزا باقی می مونه. برای کپی کردن هم باید خود فایل MDF  رو کپی کنی و Connection string اصلاح کنی ولی بهتره که Connection String  رو تو برنامه Hard code نکنی برای این کار میتونی اون رو در یک فایل ذخیره کرده و از اونجا بخونی یا در System.config ذخیره کنی. در ضمن برای Connection string پستهای زیادی وجود داره اگه جستجو کنی میبینی.
وقتی فایل رو کپی کردی با Server Explorer میتونی به اون دیتابیس وصل بشی و اون رو ویرایش کنی.

----------


## gdevnb

سلام
http://blogs.msdn.com/sqlservercompact

----------


## محمدامین شریفی

> در مورد 5 بگم که این کار را هم میتونید در محیط Visual Stuio انجام دهید هم در SQL Server Managment Studio ولی Managment Studio امکانات بیشتری داره ولی باید قبلش SQL Server رو نصب کرده باشید. من شخصا Managment Studio رو ترجیح میدم ولی اگه زیاد باهاش کاری ندارید و فقط به صورت Local استفاده دارید، از همون Visual Studio استفاده کنید.
> 6.موارد گفته شده با هم فرق زیادی دارند Command.Executenonquery مستقیما دستور را در SQL اضافه میکند که نسبت به Data Adapter سرعت بیشتری داره ولی زیاد توصیه نمیشه چون دیگه برنامه نویسی به صورت سه لایه امکان نداره. توضیح تمامی مزیتها ومعایبش یک کتاب میخواد ولی تا جایی که میتونید از همون Data Adabter استفاده کنید.
> موفق باشید.


دوست من میشه بفرمایید که
Command.Executenonquery ();
چرا با برنامه نویسی 3 لایه مشکل دارد؟

----------


## Amirhossein_Bayat

سلام .دوستان من یه برنامه ساده با سی شارپ نوشتم که پایگاه داده اون اکسس، میخواستم بدونم که چگونه ادرس دهی کنم که هنگام انتقال پروژه با مشکل برنخورم.
ایا نصب بودن اکسس روی سیستم طرف ضروری؟

اگر ممکن پی دی افی که میتونه تو ضمینه کار با اکسس در سی شارپ کمکم کنه لطفاً لینکشو برام بزارید.

----------

