PDA

View Full Version : سوالی درباره MSSQL و SQLExpress



mdssoft
شنبه 21 دی 1387, 19:47 عصر
با سلام
من تو پروژه ام از SQLExpress استفاده کرده ام ، حالا اگر تو سیستم کاربری که برنامه من رو استفاده می کنه MSSQL باشه مشکلی پیش میاد ؟
یعنی من هم حتما باید از خود MSSQLاستفاده کنم ؟

Itist82
شنبه 21 دی 1387, 20:08 عصر
سلام
نه. من و کس دیگه ای روی یه پروژه کار می کنیم. توی کامپیوتر دوستم express نصبه و من SQLServer Develper edition که یکی از نسخه های SQLServer2005 هستش رو دارم. اون فقط فایل های پایگاه داده رو برای من می فرسته و من attach می کنم و هیچ مشکلی نداریم. البته ورژن Express دوستم هم 2005 بود. فکر کنم شما هم اگه از ورژن های یکسان استفاده کنید مشکلی نداشته باشه.

h.jaza
یک شنبه 22 دی 1387, 11:07 صبح
من تو پروژه ام از SQLExpress استفاده کرده ام ، حالا اگر تو سیستم کاربری که برنامه من رو استفاده می کنه MSSQL باشه مشکلی پیش میاد ؟
یعنی من هم حتما باید از خود MSSQL استفاده کنم ؟
نه، نیازی نیست. تنها کافیست سرویس SQL روی سیستم مقصد موجود باشه.
راجع به این موضوع خیلی بحث شده، یکم سرچ کنید.

saied_genius
یک شنبه 22 دی 1387, 18:55 عصر
چرا مشكل پيش مياد !!!!!!

ولي قابل حله ....

همان طور كه يكي از دوستان اشاره كردند ، فايل را Attach كرده اند.

شما چگونه ديتابيسي داريد.

اگر ديتابيس شما بر روي خود SqlServer است و شما از Connection String استفاده مي كنيد كه در آن نام SqlServer Instance را آورده ايد ، حتماً بايد مطابقت داشته باشد.

اگر برنامه شما قرار است setup شود و در محل مورد نظر نصب شود ، بهتر است database خود را اسكريپت نماييد و بر روي سيستم مورد نظر به همراه setup نصب نماييد. (اگر در اين زمينه سوالي داشتيد در خدمتم)

و اگر نمي دانيد سيستم طرف قرار است چه instance از sqlserver را داشته باشد (كه كار دشوار مي شود) بايد داخل برنامه نويسي به دنبال instance بگرديد و در connection string ست كنيد.

اما به نظر من اگر قرار است برنامه شما SETUP شود ، يك instance از sqlserver Express را در setup خود قرار دهيد براي نصب روي سيستم مقصد، چون هر كامپيوتري ممكن است sqlserver را با يك نام نصب كرده باشند. (چون امكان چنين كاري وجود دارد كه نام sql server instance را طبق ميل خود نامگذاري نماييد)

ولي اگر مقصد سيستمي خاص است طبق آن سيستم تنظيم نماييد.

براي توضيح در مورد instance و Connection string در تاپيك زير مفصل شرح داده ام:

http://barnamenevis.org/forum/showthread.php?p=662529#post662529

سوالي بود در خدمتم.

موفق باشيد.

mdssoft
یک شنبه 22 دی 1387, 21:47 عصر
ممنون از شما.
من یه دیتا بیس به پروژه ام add کردم ، نمیدونم این همون attach کردن هست یا نه .
setup هم نمیخوام بسازم .
یعنی فایل exe کنار دیتا بیسش هست .
حالا چی ، مشکلی پیش میاد ؟

saied_genius
دوشنبه 23 دی 1387, 16:04 عصر
1- ببين عزيز ، اگر ديتابيس شما sql باشد حتماً connection string مي خواهد.
2- وقتي connection string بخواهد يعني بايد نام سرور را داخل آن قرار دهيد.
3- وقتي نام سرور را قرار داديد ، بايد همان نامي باشد كه قرار است به آن وصل شود.
4- اگر sqlServer سيستم شما با جايي كه قرار است روي آن برنامه اجرا شود متفاوت باشد، error مي دهد و مي گويد چنين سروري وجود ندارد.

5- مثال : سيستم شما داراي sqlServer با نام MSSQLSERVER است در حالي كه سيستم ديگر SQLEXPRESS است. در نتيجه به شما جواب نخواهد داد.

6- فقط يك حالت مي توان استفاده نمود كه نام مهم نباشد (آن هم در صورتي كه هر دو از MSSQLSERVER با نام هاي متفاوت) ، در اين صورت شما به جاي نام sqlserver از local استفاده نماييد.

اميدوارم كه متوجه منظورم شده باشيد.

موفق باشيد.

mdssoft
دوشنبه 23 دی 1387, 16:10 عصر
ممنون از پاسخ و توضیحات خوبتون .


- فقط يك حالت مي توان استفاده نمود كه نام مهم نباشد (آن هم در صورتي كه هر دو از MSSQLSERVER با نام هاي متفاوت) ، در اين صورت شما به جاي نام sqlserver از local استفاده نماييد.
من از ویزاردهای خود VS برای کار با دیتا بیس استفاده میکنم و اصلا خودم Connection String نمی نویسم .
حالا باید از کجا بفهمم که Connection String رو VS چی قرار داده ، یا شما می دونید VS ، اونو پیش فرض چی میزاره ؟
( همون طور که گفتم من دیتا بیس رو به پروژه ام add کردم و کنار فایل exe برنامه هست )

saied_genius
دوشنبه 23 دی 1387, 16:12 عصر
با كدام يك از زبان هاي دات نت كار مي كنيد؟؟

mdssoft
دوشنبه 23 دی 1387, 16:13 عصر
من با C# کار می کنم ، مگه فرقی هم داره ؟

saied_genius
دوشنبه 23 دی 1387, 16:16 عصر
نه فرقي نمي كنه ، فقط مي خواستم بدانم....

الان عرض مي كنم خدمتتان بايد چي كار كنيد....

saied_genius
دوشنبه 23 دی 1387, 16:28 عصر
شما از dataset استفاده مي كنيد ؟؟؟

mdssoft
دوشنبه 23 دی 1387, 16:33 عصر
بله .
دیتا بیس رو با Dataset و DataTable و TableAdapter ی که توسط خود VS به صورت ویزاردی ساخته ام به روز رسانی میکنم .

saied_genius
دوشنبه 23 دی 1387, 16:47 عصر
در صورتي كه ديتابيس رو به صورت يك فايل mdf به پروژه اضافه كنيد و از ديتاست استفاده كنيد ، VS به صورت اتوماتيك براي شما connection string را مي سازد و در فايل app.config در مسير خود پروژه و كنار ديتابيس شما مي سازد.

فايل app.config را در محيط VS باز كنيد:

1- داخل اين فايل قسمتي به نام connection string خواهيد يافت.
چيزي شبيه اين خط كد:



connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True"

providerName="System.Data.SqlClient" />



حال مي بينيد كه data source براي شما تعيين كرده است.

اگر مانند سيستم من از يك instance مانند sqlexpress استفاده كنيد (همان گونه كه مي بينيد از نقطه و سپس \ و نام instance استفاده كرده است) به صورت اتوماتيك مي شناسد و اضافه مي كند.

نحوه اتصال بانك اطلاعاتي شما به sqlserver هم همان گونه كه مي بينيد attach مي شود.

حال شما مي توانيد قسمت data source را (همانگونه كه قبلاً هم خدمتتون عرض كردم) به لينك http://barnamenevis.org/forum/showthread.php?p=662529#post662529 مراجعه نماييد و طبق نيازتان تغييرش دهيد.

اميدوارم كه متوجه شده باشيد.

باز هم اگر سوالي بود در خدمتم.

موفق باشيد.

mdssoft
دوشنبه 23 دی 1387, 16:52 عصر
اگر فایل دیتا بیس sdf باشه چی ؟

saied_genius
دوشنبه 23 دی 1387, 17:00 عصر
يعني مربوط به mobile edition از sqlserver باشد ؟

باز هم فرقي نمي كند.

تا وقتي كه شما در فايل app.config چيزي به عنوان connection string داريد مي توانيد آنرا طبق دلخواه خود تغيير دهيد.

mdssoft
دوشنبه 23 دی 1387, 17:08 عصر
يعني مربوط به mobile edition از sqlserver باشد ؟حقیتش من زیاد با انواع دیتا بیس آشنا نیستم .
دیده بودم که دو نوع دیتا بیس وجود داره ، یکی با پسوند sdf و دیگری mdf
پس حالا فهمیدم ، طبق فرموده شما sdf برای موبایل هست و بهتره از mdf تو پروژه های win app استفاده کنیم ! درسته ؟

saied_genius
دوشنبه 23 دی 1387, 17:13 عصر
دقيقاً .....

تازه ! فايل sdf اصلاً بدرد win app نمي خورد و مخصوص PDA و Windows CE و به طور كلي mobile edition است.

و البته فايل sdf با sqlexpress باز نمي شود و نمي توان از اين ويرايش استفاده نمود.

حتما بايد mssqlserver باشد.

سوالي بود در خدمتم.

موفق باشيد.