PDA

View Full Version : سوال: مشکل باز کردن پروژه در سیستم های دیگر



masterhamed
جمعه 07 اسفند 1394, 16:28 عصر
سلام خدمت اساتید محترم من یک پروژه سی شارپ دارم که به اتمام رسیده و الان موقع تست روی سیتم های دیگه وقتی باز میشه با ارور دیتا بیس مواجح می شم لطفا کمک کنید با تشکر.

masterhamed
جمعه 07 اسفند 1394, 17:02 عصر
سلام خدمت اساتید محترم من یک پروژه سی شارپ دارم که به اتمام رسیده و الان موقع تست روی سیتم های دیگه وقتی باز میشه با ارور دیتا بیس مواجح می شم لطفا کمک کنید با تشکر.

لطفا کمک کنید خیلی لازم دارم این رو

vB.N3T
جمعه 07 اسفند 1394, 17:25 عصر
شما از برنامه setup ساختی؟؟ با SQL server هست یا نسخه express? اطلاعات کامل بدید از نرم افزاری که دارید؟؟ کانکشنی هم ک در برنامه داری کد هاششو بزارین

masterhamed
شنبه 08 اسفند 1394, 05:29 صبح
اگه منظورتون استفاده از نسخه های Express و Developer و Enterprise هست باید بگم
من ار sql server استفاده کردم که در visual studio هست.
فایل ستاپ رو هنوز نساختم ولی مگه نباید با آدرس مستقیم AttachDbFilename کار کنه؟؟؟؟
البته من نمیدونم این کار درسته یا نه ولی من از این کانکشن استفاده کردم


@"Data Source=(LocalDB)\v11.0;AttachDbFilename="+System.IO.Directory.GetParent(System.IO.Directory .GetCurrentDirectory()).Parent.FullName+"\\App\\DATABASEPSF.MDF;Integrated Security=True";
متشـــــــــــــکر از پاسختون

ali_md110
شنبه 08 اسفند 1394, 05:43 صبح
رشته اتصالتون تغییر بدید


<add name="ApplicationDataContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirec tory|\Database.mdf;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

masterhamed
شنبه 08 اسفند 1394, 06:12 صبح
الان تست میکنم
متشکرم

pbm_soy
شنبه 08 اسفند 1394, 06:40 صبح
احتمالا شما نیاز دارید که در سیستم مقصد sql express , localdb را نصب کنید و همینطور مسیر فایل دیتابیس را طبق آدرسی که در کانکشن استرینگ مشخص کردید باید درست کرده باشید
پس برای اجرای برنامه در سیستم مقصد به دات نت فریم ورک و sql express/localdb احتیاج دارید و فایل دیتابیس را در مسیر موردنظر کپی کنید و بعد فایلهای پروژه را به سیستم مقصد کپی کنید و نهایتا میتوانید اجرا کنید
توجه کنید موردی که بیشتر دوستان باهاش دچار مشکل میشوند اینه که فایل دیتابیس و فایلهای موردنیاز پروژه را در محلی کپی میکنند که کاربر ویندوزشون اجازه دسترسی به آن مسیر را ندارند مخصوصا در ویندوزهای هفت و بالاتر از آن چون این ویندوزها بصورت پیش فرض تمام بخشهای درایو سی را محدود تنظیم کرده است و فقط فولدر app data پرمیسشن آزادتر دارد

masterhamed
شنبه 08 اسفند 1394, 13:38 عصر
احتمالا شما نیاز دارید که در سیستم مقصد sql express , localdb را نصب کنید و همینطور مسیر فایل دیتابیس را طبق آدرسی که در کانکشن استرینگ مشخص کردید باید درست کرده باشید
پس برای اجرای برنامه در سیستم مقصد به دات نت فریم ورک و sql express/localdb احتیاج دارید و فایل دیتابیس را در مسیر موردنظر کپی کنید و بعد فایلهای پروژه را به سیستم مقصد کپی کنید و نهایتا میتوانید اجرا کنید
توجه کنید موردی که بیشتر دوستان باهاش دچار مشکل میشوند اینه که فایل دیتابیس و فایلهای موردنیاز پروژه را در محلی کپی میکنند که کاربر ویندوزشون اجازه دسترسی به آن مسیر را ندارند مخصوصا در ویندوزهای هفت و بالاتر از آن چون این ویندوزها بصورت پیش فرض تمام بخشهای درایو سی را محدود تنظیم کرده است و فقط فولدر app data پرمیسشن آزادتر دارد

تشکر از راهنماییتون من چک کردم در سیستم مقصد sql expres localDB نصب هست؛ اما با وجود این من نمیتونم به بانک اطلاعاتی متصل بشم. ارور گرفته شده هم همین امر رو گوش زد میکنه من فکر میکنم Connectionstring من مشکل داشته باشه ولی این کانکشن روی سیستم خودم درست کار میکنه .
متشکر از راهنماییتون.
این هم اروری که میده
139317

ali_md110
شنبه 08 اسفند 1394, 15:30 عصر
اون کانکشن استرینگ بالا که فرستادم در فایل کانفیگ برنامه قرار بدید و
تکه کد زیز که صراحتا مشخص میکنه دایرکتوری اصلی برنامه شنا رو
این تکه کد رو در تابع main یا سازنده app برنامه صدا بزنید


AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Directory.GetCurrentDirectory());

masterhamed
شنبه 08 اسفند 1394, 16:08 عصر
اون کانکشن استرینگ بالا که فرستادم در فایل کانفیگ برنامه قرار بدید و
تکه کد زیز که صراحتا مشخص میکنه دایرکتوری اصلی برنامه شنا رو
این تکه کد رو در تابع main یا سازنده app برنامه صدا بزنید


AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Directory.GetCurrentDirectory());

من از کانکشنی که شما برام فرستادین استفاده کردم ولی به این روش
app.config


<add name="conString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirec tory|\App\DATABASEPSF.mdf;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

connectionstring


string connectionString = System.Configuration.ConfigurationManager.Connecti onStrings["conString"].ConnectionString;

با این حالت در سیستم من باز هم کاملا درست کار میکنه اما در سیتم مقصد این ارور رو میگیره

139319

ali_md110
شنبه 08 اسفند 1394, 16:19 عصر
این خطای شما مربوط به عدم وجود اسکیول سرور در سیستم کاربر هست و به کانکشن ارتباطی نداره

ببینید رو سیستم کاربر نسخه اکسپرس localDB هست یا چیز دیگه
البته ممکنه چند تا اسکیول سرور نصب کرده باشید و instance اون در کانکشن استرینگتون اشتباه وارد میکنید منظورم این قسمت کانکشن استرینگتونه


(LocalDB)\v11.0


این قسمت با توجه به نسخه اسکبول متفاوت نوشته میشه

pbm_soy
شنبه 08 اسفند 1394, 18:09 عصر
از نظر من هر دو کانکشن استرینگ مشکلی ندارند فقط دقت کنید که در این دو مورد آدرس و محل خواندن دیتابیس کجاست؟ مثلا در این کانکشن آخری محل دیتابیس درکنار فایل اجرایی برنامه باید باشد اون یکی کانکشن را دقت نکردم چی بود

فقط در خطای اولی که داشتید برنامه با sql expreess ارتباط برقرار میکند ولی دیتابیس را پیدا نمیکند ویا اینکه پرمیسشندسترسی به آن فولدر ندارید!
فقط برنامه را دقت کنید کلا در درایو دیگری به غیر از سی کپی کنید مطمین تر است و خیالتون راحتتر میشه
مورد آخر شما درکل نباید مشکلی برای اجرای برنامه در سیستم دیگر داشته باشید
فقط sql express ترجیحا دقیقا هم ورژن sql روی سیستم خودتون را نصب کنید و سپس فولدر پروژه را همانطور که هست کپی کنید!