PDA

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



aliramazani
شنبه 14 خرداد 1390, 11:31 صبح
چندتا سوال:

من برای رشته اتصال در پروژه خودم از دستور زیر استفاده کردم:

SqlConnection objConnection = new SqlConnection("Data Source=ali\\sqlexpress;Initial Catalog=lab;Integrated Security=True");


حالا من می خوام این پروژه روی یک کامپیوتر دیگه نصب بشه و اجراش کنم. مسلما اسم اون کامپیوتر چیز دیگه ای هست و قانونا من باید این کد را به شکلی که برای اون کامپیوتر قابل اجراست تغییر بدم!

سوال من اینجاست:
با توجه به اینکه من از این کد در قسمتهای مختلف پروژه زیاد استفاده کردم تغییر دادن اون کار زیاد منطقی به نظر نمی رسه!

راهی وجود داره که با یکبار تنظیم انجام بشه؟
در ضمن من نمی خوام روی اون کامپیوتر جدید سورس بدم و فقط یک فایل exe می دم. می خوام به راحتی بشه تنظیمات را فقط یکبار انجام داد.

به نظر خودم باید به جای کد بالا یک فایل اینکلود کنم و کد را درون اون فایل قرار بدم که فقط با تغییر اون فایل در همه فرم ها اعمال بشه(توی طراحی وب بلدم ولی اینجا نه)

لطفا یه راه حل منطقی بهم پیشنهاد بدین

در ضمن قراره این پروژه روی یک کامپیوتر سرور در شبکه نصب بشه که بقیه بتونن ازش استفاده کنن.

B.I.O.H.A.Z.A.R.D
شنبه 14 خرداد 1390, 12:02 عصر
اگر میخواید فایل ستاپ داشته باشید و برنامه بصورت exe در کامپیوتر دیگه اجرا بشه و به بانکش هم متصل باشه، بهتره از این روش برید. (البته این روش منه، شاید بهترش هم باشه)

من یه کلاس ساختم که این تکه کد توی اون قرار داره:

class SqlString
{
public static string CS()
{
string AppDir = Application.StartupPath + "\\";
string ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + AppDir + "DBName.mdf; " + " Integrated Security=True;User Instance=True";
return ConnectionString;
}
}

حالا هر جا که Sql Connection داشته باشم به این صورت تعریفش میکنم:

SqlConnection SC = new SqlConnection(SqlString.CS());

البته بازم تاکید میکنم، این حالت فقط برای فایل ستاپ جواب میده. اگر برای سورس کد رو هم خواستید بگید تا اونم بگم. (یه خرده فرق داره)

aliramazani
شنبه 14 خرداد 1390, 12:23 عصر
نه همون ستاپ مد نظرمه. قرار فایل exe بدم که روی سرور نصب میشه.

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

B.I.O.H.A.Z.A.R.D
شنبه 14 خرداد 1390, 14:37 عصر
خب الان که دارید روی پروژه کار میکنید باید از این روش استفاده کنید:

class SqlString
{
public static string CS()
{
int len = Application.ExecutablePath.Length - 25;
string AppDir = Application.ExecutablePath.Substring(0, len);
string ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + AppDir + "DBName.mdf; " + " Integrated Security=True;User Instance=True";
return ConnectionString;
}
}

البته یه عدد 25 اون بالا هست، که فقط توی یک کامپیوتر باید تنظیم شه، اونوقت همه جا کار میکنه. ببینید راحت تر بگم،

متغیر رشته ای AppDir در حالت پیشفرض، داره این مسیر رو نشون میده:


C:\Users\BIOHAZARD\Documents\Visual Studio 2008\Projects\SuperMarket\SuperMarket\bin\Debug\Su perMarket.exe

اون عدد 25 از آخر رشته بالا 25 تا کم میکنه

باعث میشه، از همین رشته 25 تا کارکتر کم بشه، و به پوشه اصلی پروژه (که همه فایل ها مثل بانک پروژه توی اون هست) برسیم. خب دیگه فکر کنم متوجه شده باشید.یعنی این مسیر:


C:\Users\BIOHAZARD\Documents\Visual Studio 2008\Projects\SuperMarket\SuperMarket\

کشتم خودمو تا توضیح بدم :قهقهه:

همه اینا واسه موقع کار با پروژست، اگه خواستید پروژه رو Release کنید، از اون روش اول استفاده کنید.