ورود

نسخه کامل مشاهده نسخه کامل : کانکت شدن به دیتا بیس در مسیری غیر از دایرکتوری برنامه



MERLIN_BOZORG
15-12-2013, 22:31
سلام خسته نباشید
می خوام ببینم چطوری میشه غیر از کپی کردن دیتابیس در مسیر برنامه ی نوشته شده به دیتا بیس متصل شد؟
مثلا فرض کنید که برنامه ی من در داخل پارتیشن C باشه اما دیتا بیس در D
من برنامه ای نوشتم که این حالت رو داره اما با ارور زیر مواجه میشم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما وقتی یک کپی از دیتا بیس در کنار برنامه (داخل سولوشن برنامه) قرار میدم مشکل برطرف میشه
حالا می خوام ببینم راهی غیر از کپی نداره؟؟؟

_H2_
23-12-2013, 00:04
سلام
در برنامه های بزرگ تجاری دیتابیس کلاً در جای دیگری قرار دارد، حتی در سرور دیگری...
دیتابیس هایی مانند SQLServer و Oracle میتوانند دیتابیس را به صورت توزیع شده نگهداری و مدیریت کنند و شما فقط با دانستن IP,DBName,User,Pass بتوانید به آنها متصل شوید.
و اصولاً این دیتابیس ها ساخته نشدند تا فایل را در کنار برنامه تان بخوانند و مدیریت کنند!
ولی خوب مباحث و جزئیات زیادی وجود دارد که در صورت تمایل میتوانید در کتوب مرتبط مطالعه و پیدا کنید.

در SQLServer استثناً از سال 2005 نسخه ویژه ای به نام SQLServer Express ارائه داد که برای برنامه بسیار کوچک و تقریباً تک کاربره، توانایی کاربا فایل های mdf دیتابیس را در محل مشخص شده در ConnectionString و کنار برنامه ارائه میداد.
و استفاده از این امکان و وجود دیتابیس در کنار برنامه تان میتوانید از رشته اتصالی مانند این استفاده کنید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای آنکه دیتابیس در مسیر دیگری باشد و کنار برنامه تان نباشد هم میتوانید مسیر را کامل بیان کنید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته در سال های بعد نسسخه های باز مختصر تری هم بنام Compact و LocalDB هم ارائه شد.
اگر فرض کنیم شما از یکی از این سه نسخه SQLServer استفاده میکنید، باید متناسب با هر نسخه ، ConnectionString پروژه تان را اصلاح کنید.
موفق باشید.

MERLIN_BOZORG
23-12-2013, 00:26
متشکرم دوست عزیز
این نکاتی که ذکر کردین خیلی مفید هستن
اما من این نکات را میدونم مشکل اینجاست که
من کانکشن استرینگ را به صورتی که فرمودید نوشته ام اما با ارور ذکر شده در پست اول مواجه میشم
اما اگر دیتا بیس در کنار برنامه باشه این ارور رو نمیده و من نمی خوام که دیتابیس در کنار برنامه باشه
حالا باید چی کار کنم؟

Sent from my GT-I9500 using Tapatalk

MERLIN_BOZORG
23-12-2013, 01:41
دوست عزیز مرسی
فهمیدم مشکل از کجا بود
مشکل در app.config در قسمت solution برنامه بود که یک مسیری غیر واقعی تولید میکرد.
برنامه ای که من باید مینوشتم باید فولدری به اسم db8 در کنار فولدر bin قرار میدادم و دیتا بیس رو داخل فولدر db8 ایجاد میکردم
مشکلی که در app.config بود این بود که مسیر رو به صورت c:\bin\db8\db8.mdf در نظر میگرفت که همچین چیزی وجود نداشت.
مسیر واقعی باید به صورت زیر باشه
C:\db8\db8.mdf
(من از linq استفاده میکنم که کانکشن استرینگ رو خودش ایجاد میکنه)
مرسی از وقتی که گذاشتی

Sent from my GT-I9500 using Tapatalk