PDA

View Full Version : ساخت setup



from_hell
شنبه 05 فروردین 1391, 11:21 صبح
با سلام
هرچی گشتم نتونستم یک آموزش کامل و بی نقص راجع به ساخت setup به خصوص با فایل database پیدا کنم.
مشکل من هم همین پایگاه داده هست.
sql express در کامپوتر مقصد نصب می شه ولی attech نمی شه.
نمی خوام هم از installsheld استفاده کنم.

asadegha
شنبه 05 فروردین 1391, 11:56 صبح
خوب سرچ نکردی.
84610

from_hell
شنبه 05 فروردین 1391, 12:23 عصر
خیلی ناقص هست.گفتم که مشکل من با دیتابیس هست....
نحوه تعریف connection برای sql exprss ...
نحوه attach...

from_hell
شنبه 05 فروردین 1391, 19:03 عصر
کسی نیست کمک کنه
خیلی واجبه....:ناراحت:

bozhmehrani
شنبه 05 فروردین 1391, 20:34 عصر
attach کردن که کاری نداره

وقتی اتچ میکنی چه ارروری میده؟میشه بنویسی؟

دوتا نکته که منم بعضی موقع ها باهاش برخورد میکنم بهت میگم
یکی اینکه نام سرورتو dotمنظورم نقطه است بزار(.)
دو اینکه اون فایل بانکتو تو مسیر پیش فرض خود بانک های اسکیوال کپی کن-نمیدونم علتش چیه ولی بعضی موقع من با بانکی اکه اتچ نمیشده همچین کاری کردم اتچ شده

aghayex
شنبه 05 فروردین 1391, 22:27 عصر
کانکشن استرینگ تو اس کیو ال اکسپرس این طوریه :

SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\db\\Database1.mdf;Integrated Security=True")

تو این کانکشن دیتابیس تو یه پوشه به اسم db و در ریشه برنامه هست .

asadegha
یک شنبه 06 فروردین 1391, 04:12 صبح
مشکلت کجاست؟
دیتا بیست رو همراه بقیه خرت و پرت هایی که توی debug هست اضافه میکنی. کانکشن استرینگ هم که توی برنامه دادی. قاعدتا مسئله ایی نباید داشته باشه.

from_hell
یک شنبه 06 فروردین 1391, 11:31 صبح
منظور از DataDirecto| و ry|\\ چی هست؟

aghayex
یک شنبه 06 فروردین 1391, 14:25 عصر
|DataDirectory|

این یه عبارت هست که مسیر نصب برنامه رو بهت میده و طوری که قبلا هم گفتم اگه دیتابیست در مسیر نصب برنامت هست و توی هیچ پوشه ای نیست باید به صورت زیر بنویسی

SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename= |DataDirectory|\\Database1.mdf;Integrated Security=True")

اما اگه تویه پوشه ای مثل db هست که به صورت زیر می نویسی

SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename= |DataDirectory|\\db\\Database1.mdf;Integrated Security=True")

asadegha
دوشنبه 07 فروردین 1391, 01:39 صبح
|DataDirectory| در sql مسیر اجرای دیتابیس رو میده.
سختته |DataDirectory| رو پاک کن بجاش بنویس Application.StartupPath.

SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\db\\Database1.mdf;Integrated Security=True");

from_hell
چهارشنبه 09 فروردین 1391, 10:18 صبح
من ابتدا sql server خودم رو stop می کنم بعد از فایل دیتابیس کپی بر میدارم حالا باید اون کپی رو کجا بریزم؟
درست تو پوشه debug پروژه setup ای که ساختم (مثلا debug\db\mydb.mdf) یا.....؟

md_davari
چهارشنبه 09 فروردین 1391, 12:25 عصر
به لینک های زیر یه سری بزن بسیار مفید می باشد:
لینک 1 (http://www.codeproject.com/Articles/16231/Deploy-your-Application-and-Database)
لینک 2 (http://www.codeproject.com/Articles/30173/Restore-Database-during-Application-Deployment)
لینک 3 (http://www.codeproject.com/Articles/28188/NET-Installer-that-Automatically-Installs-SQL-200)

aghayex
چهارشنبه 09 فروردین 1391, 16:34 عصر
nدوست عزیز حرف های شما ضدو نقیض هست یه بار می گی از sqlexpress استفاده می کنم از اون طرف می گید اس کیو ال رو استوپ می کنم این یعنی چی ؟ :متعجب::اشتباه:
ما در sqlexpress استوپی نداریم و هر موقع برنامه بسته می شه دیتابیس دی اتچ میشه و هر موقع برنامه اجرا می شه دیتابیس اتچ می شه

from_hell
چهارشنبه 09 فروردین 1391, 17:23 عصر
بله شرمنده حق با شماست.من روی سیستم خودم sql server رو نصب کردم و تو #c برنامشو نوشتم و connetion اون رو بر اساس sql server تنظیم کردم.حالا می خوام یک setup درست کنم خوب باید در سیستم مقصد express نصب بشه conntion بر اساس اون تنظیم بشه . مشکل من همینه.چطور اولا فایل های پایگاه داده رو انتقال بدم و چطوری اون ها رو Attach کنم؟

md_davari
پنج شنبه 10 فروردین 1391, 11:36 صبح
من ابتدا sql server خودم رو stop می کنم بعد از فایل دیتابیس کپی بر میدارم حالا باید اون کپی رو کجا بریزم؟
درست تو پوشه debug پروژه setup ای که ساختم (مثلا debug\db\mydb.mdf) یا.....؟
دوست عزیز اگه اعمالی که می خوای با دیتابیس انجام بدی، تراکنش های ساده مثل insert, update' delete است که نیازی به اتچ کردن نیست فقط کافیه کانکشن استرینگ را مثل همان چیزی که دوستان گفتند تنظیم کنی، مثل زیر:
SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\db\\mydb.mdf;Integrated Security=True")
ولی اگه موارد دیگری مثل backup, restore,... را میخوای انجام بدی و حتما نیاز به اتچ دائمی دیتابیس داری، چند راه را میتونی انجام بدی که بهترین راه همون راهی است که در لینک هایی که در بالا دادم توضیح داده شده است،
یک راه دیگر کپی کردن فایل mdf در یک مسیر دلخواه در پوشه پروژه است(در کد زیر مستقیم در پوشه اصلی کپی شده) و سپس استفاده از کد زیر برای اتچ کردن آن:
string pathDB = System.IO.Directory.GetCurrentDirectory() + @"\myDB.mdf";
mysqlcommand.CommandText = @"CREATE DATABASE " + databaseName + " ON (FILENAME = '" + pathDB + "') FOR ATTACH ";

yaghoobi91
شنبه 19 فروردین 1391, 16:05 عصر
با سلام و احترام
میشه خواهش کنم نحوه ساخت setup در ویژوال بیسیک 6 و sql server رو توضیح بدین؟خواهش می کنم خیلی لازم دارم