View Full Version : مشکل در Atach کردن ConnectionString به صورتی که مسیر فایل را مشخص نکنیم
mehdiba3
سه شنبه 01 مهر 1393, 10:12 صبح
سلام
برنامه ای که نوشتم به اتمام رسیده. حالا فقط باید این برنامه در سیستم مشتری نصب شود. با فرض اینکه برنامه به صورت محلی فقط در یک سیستم نصب می شود من چگونه رشته اتصال را تعریف کنم که فایل پایگاه داده به راحتی اتچ شود و نیاز به حضور برنامه نویس یا پشتیبان در محل مذکور نباشد
Con.ConnectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename =C:\Database\amoozeshgah.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
با کد بالا و نصب SQLEXPRESS در سیستم مشتری مشکلی ندارم و به راحتی برنامه کار میکند. ولی مشکل اینجاست که من باید فایل amoozeshgah.mdf را درون درایو C کپی کنم تا رشته اتصال آن را پیادا کند.
سوال من این است آیا راهی وجود دارد که فایل amoozeshgah.mdf را در کنار فایل اجرایی برنامه کپی کنم و دیگر مسیر درایو خاصی را برای پیادا کردن فایل amoozeshgah.mdf را ندهم؟ اگر وجود دارد ممنون میشم راهنماییم کنید.
با تشکر
سوال آخر هم اینکه من برنامه را تحت شبکه نیز اجرا کردم و مشکلی ندارم. فقط سوالم اینه بر روی سیستم من نسخه Enterprise نصب هست که حجم بالایی دارد.
آیا بر روی سیستم مشتری هم این نسخه باید نصب شود(در صورت اجرای شبکه)؟ اگر جنین هست راهی وجود دارد که بر روی sql server managment stadio رمز عبور قرار دهم تا کاربری نتواند مستقیم سورس پایگاه داده را دستکاری کند؟
با تشکر
mehdiba3
سه شنبه 01 مهر 1393, 12:23 عصر
کسی نیست جواب بده؟ خیلی فوریه
mehdiba3
سه شنبه 01 مهر 1393, 16:58 عصر
انگار اینجا هیچ کس نیست به من کمک کنه
نا امید شدم
mohammad reza beizavi
سه شنبه 01 مهر 1393, 17:20 عصر
درود بر شما
در روشی که شما دارید نیاز به نصب و attach کردن بانک اطلاعاتی دارید. بهتره از LocalDB استفاده کنید که البته باید روی سیستم مقصد از Windows Vista به بالا و از دات نت 4.0.2 با بالا استفاده کنید.
اما در مورد Connection String باید خدمتتون عرض کنم که چه در این مدل و چه در LocalDB کافیه در این رشته به جای مقدار |DataDirectory| رو قرار بدید و فایل mdf رو هم در در ریشه پروژتون بذارید تا خود VS موقع publish کردن در جای مناسب قرارش بده (bin/debug)
نکته: پس از نصب باید به فایل mdf یا با برنامه نویسی و یا به صورت دستی اجازه read , wirte رو بدید
mehdiba3
سه شنبه 01 مهر 1393, 22:12 عصر
درود بر شما
در روشی که شما دارید نیاز به نصب و attach کردن بانک اطلاعاتی دارید. بهتره از LocalDB استفاده کنید که البته باید روی سیستم مقصد از Windows Vista به بالا و از دات نت 4.0.2 با بالا استفاده کنید.
اما در مورد Connection String باید خدمتتون عرض کنم که چه در این مدل و چه در LocalDB کافیه در این رشته به جای مقدار |DataDirectory| رو قرار بدید و فایل mdf رو هم در در ریشه پروژتون بذارید تا خود VS موقع publish کردن در جای مناسب قرارش بده (bin/debug)
نکته: پس از نصب باید به فایل mdf یا با برنامه نویسی و یا به صورت دستی اجازه read , wirte رو بدید
کاری که گفتید رو انجام دادم ولی باز یک مشکل دیگه به وجود اومد. برنامه قابلیت تغییر روی پایگاه داده رو نداره و فقط خواندنی هستش.
رفتم فایل mdf رو پیدا کردم و دیدم در قسمت خصوصیاتش دیدم تیک read only زده نشده.
مشکل از کجاست؟
جرا پیام میده که فایل پایگاه داده فقط خواندنی عستش و قابلیت بروز رسانی نداره
میشه پله پله من رو راهنمایی کنین؟ خیلی ممنون.
اینم ConnectionString :
.ConnectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\amoozeshgah.mdf;I ntegrated Security=True;Connect Timeout=30;User Instance=True";
mohammad reza beizavi
سه شنبه 01 مهر 1393, 22:44 عصر
توی Sql management studio یه New query بزن و این دستور رو اجرا کن تا از حالت Read only بیاد بیرون.
USE [master]
GO
ALTER DATABASE [TESTDB] SET READ_WRITE WITH NO_WAIT
GO
mehdiba3
چهارشنبه 02 مهر 1393, 21:22 عصر
توی Sql management studio یه New query بزن و این دستور رو اجرا کن تا از حالت Read only بیاد بیرون.
USE [master]
GO
ALTER DATABASE [TESTDB] SET READ_WRITE WITH NO_WAIT
GO
دوست عزیز نسخه express روی سیستم مشتری نصبه. اونجا که نمیشه کوئری بنویسم. لطفا روش دیگه بهم معرفی کنید.
ممنون
mehdiba3
چهارشنبه 02 مهر 1393, 21:42 عصر
این کوئری رو نوشتم و اجرا کردم ولی بازم نمیزاره داده های بانک رو تغییر بدم. فقط میشه خوند اطلاعات رو
mohammad reza beizavi
پنج شنبه 03 مهر 1393, 01:16 صبح
این کوئری رو نوشتم و اجرا کردم ولی بازم نمیزاره داده های بانک رو تغییر بدم. فقط میشه خوند اطلاعات رو
پیام خطا رو کامل بذار ببینم بهتر بشه نظر بدم
mehdiba3
پنج شنبه 03 مهر 1393, 09:12 صبح
پیام خطا رو کامل بذار ببینم بهتر بشه نظر بدم
http://upload7.ir/imgs/2014-09/83661086164557648219.jpg
mohammad reza beizavi
جمعه 04 مهر 1393, 08:34 صبح
طبق نکته ای که توی پست #4 گذاشتم اینکارا رو انجام بده
برو به مسیری که فایلای mdf و ldf هست، روی هر فایلش راست کلیک کن و properties رو بزن، برو به سربرگ security ، کاربر جاری سیستم رو انتخاب کن و از کادر پایینی تمام permission ها رو برای این کاربر تیک بزن و ok کن
اینجور نباید مشکلی داشته باشید.
mehdiba3
جمعه 04 مهر 1393, 21:17 عصر
طبق نکته ای که توی پست #4 گذاشتم اینکارا رو انجام بده
برو به مسیری که فایلای mdf و ldf هست، روی هر فایلش راست کلیک کن و properties رو بزن، برو به سربرگ security ، کاربر جاری سیستم رو انتخاب کن و از کادر پایینی تمام permission ها رو برای این کاربر تیک بزن و ok کن
اینجور نباید مشکلی داشته باشید.
سلام. این کارو قبلا کردم و نشد. مرسی
ولی وقیی پایگاه داده رو تو درایوی جز C میبرم مشکل حل میشه. احتمالا حق با شماس و من باید رو security درایو C کار کنم
ممنون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.