PDA

View Full Version : قرار دادن لینک DB در برنامه جاری



vahid.ch013
شنبه 07 فروردین 1389, 18:30 عصر
سلام.
یه کد نوشتم،و یه data base دارم که تو درایو D دخیره شده،جالا این برنامه رو میهوام تو یه کامپیوتر دیگه اجرا کنم و به عنوان مثال تو درایو E کپی میکنمش،اما تو کد برنامه من DB رو تو یه درایو دیگه بایند کردم.


private void main_page_Load(object sender, EventArgs e)
{
int count = 1;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\loin\\st.mdb";
Con = new OleDbConnection(strCon);
Con.Open();
strSql = "SELECT * FROM customer";
cmd = new OleDbCommand(strSql, Con);
.
.
.
.
}

.

Data source درایو D ست شده،چطوری میتونم تو درایوی که کپی میکنم برنامه رو بدون دست کاری کد برنامه اجرا کنم.
مرسی.
فکر میکنم با حرف ~ میشه اینکارو کرد اما مطمئن نیستم،اگه مد رو بدین ممنون میشم.

mohammad diba
شنبه 07 فروردین 1389, 18:41 عصر
دوست عزیز اگه دیتابیست attach هست از Application.ExecutablePath استفاده کن . بیشتر توضیح بدی کمکت می کنم.

vahid.ch013
شنبه 07 فروردین 1389, 18:46 عصر
دوست عزیز اگه دیتابیست attach هست از Application.ExecutablePath استفاده کن . بیشتر توضیح بدی کمکت می کنم.

دوست عزیز:
این برنامه اگه تو درایو Dریخته شه برنامه اجرا میشه،اما اگه تو درایو E یا هر جایی به غیر از اون آدرسی که داخل Dta source هست ریخته شه Data base not found میزنه.
توی VB اینجوریه که اگه اسم درایو رو ذکر نکنید درایو جاری در نظر میگیره اما کد C#‎ رو نمیدونم.
ممنون

mohammad diba
شنبه 07 فروردین 1389, 18:49 عصر
مرسوم اینه که شما دیتابیس رو کنار exe قرار بدید وبرای مسیر از Application.ExecutablePath استفاده کنی

mahmoodramzani
شنبه 07 فروردین 1389, 19:07 عصر
بهتره که ConnectionString رو Runtime دستکاری کنی.برای تغییر ConnectionString می تونید به این صورت عمل کنید:
توی فایل Settings.cs ی متد یا property درست کن.این متد یا property به connectionstring دسترسی داره،بنابر این میتونی اونو از هرکجای برنامه فراخوانی کنی.

exlord
شنبه 07 فروردین 1389, 19:30 عصر
فایل db رو بزار تو یه پوشه کنار فایل exe ....

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\DB\\st.mdb";