PDA

View Full Version : اتمام اولین پروژه و ارائه نسخه نصب به کاربر



mohammad2407
چهارشنبه 23 اسفند 1391, 23:49 عصر
سلام دوستان عزیز من یک نرم افزار کاربردی با سی شارپ نوشتم . این اولین پروژه من بود و کاملا هم راضی هستم از برنامه ای که نوشتم حالا وقت ارائه هست و چون اولین باری هست که میخوام این کارو بکنم اصلا نمیدونم باید چطوری این کارو بکنم

نرم افزار من با Microsoft Visual Studio 2010 و بانک اطلاعاتی SQL Server Management Studio2008 نوشته شده و روی .net framework 4 و ..net framework 4 client profile به خوبی کار میکنه و هیچ مشکلی نداره .

در این پروژه از LINQ استفاده شده فقط قسمت بکاپ گیری نرم افزار از SqlConnection استفاده شده

جا داره در اینجا از دوست خوبم محمود عزیز( Mahmoud.Afrad) تشکر کنم . چون در این پروژه خیلی خیلی زیاد به من کمک کرد .


میخوام روی ویندوز XP نصب کنم . و هیچی از فایل نصب و SQL در مقصد نمیدونم

اگر بشه کاری کرد که نیاز به نصب هیچ نرم افزار نباشه عالی میشه

با تشکر خدا نگهدار

daneshjo90
پنج شنبه 24 اسفند 1391, 00:11 صبح
با سلام
اولا تبریک میگم بهت

ثانیا امیدوارم همیشه موفق باشی و پشت سر هم برنامه های دگ رو به اتمام برسونی

ثالثا میتونی از ستاب ساز خود ویژوال استدیو 2010 استفاده کنی و همه برنامه های جانبی که نیاز داری تا برنامه ات اجرا بشه رو تو فایل ستابت اضافه کنی

یه تستی بکن شاید بتونی موفق بشی

باز متبریک میگم

موفق باشی

FreeMagic
پنج شنبه 24 اسفند 1391, 00:17 صبح
والا متوجه نشدم این وبلاگ دوستمون به چه دردی میخوره!
ولی شما به احتمال 99درصد نیاز به پیش نیاز برای نصب دارید
1- window installer 4.5
2- دات نت فریمورک
3- sql server 2008
4- نصب crystal report runtime
البته این آخری بستگی داره که توی پروژه از گزارش گیری استفاده میکنید یا نه و اگر استفاده میکنید از کریستال هست یا چیز دیگه ای
اینکه چه طور پروژه رو بسازی کمی مفصل هست ولی مختصر بگم
1- شما پروژه جدیدی ایجاد کنید. انتخاب نوع پروژه هم به این ترتیب هست. other project type بعد setup and deployment بعد visual studio installer بعد از نوع setup project
2- محتویات اصلی پروژه که در پوشه debug هست رو داخل پوشه application folder اضافه کنید
مابقیش رو این طوری بلد نیستم توضیح بدم. باید بدونم برنامه شما به چه صورت هست

mohammad2407
پنج شنبه 24 اسفند 1391, 00:51 صبح
والا متوجه نشدم این وبلاگ دوستمون به چه دردی میخوره!
ولی شما به احتمال 99درصد نیاز به پیش نیاز برای نصب دارید
1- window installer 4.5
2- دات نت فریمورک
3- sql server 2008
4- نصب crystal report runtime
البته این آخری بستگی داره که توی پروژه از گزارش گیری استفاده میکنید یا نه و اگر استفاده میکنید از کریستال هست یا چیز دیگه ای
اینکه چه طور پروژه رو بسازی کمی مفصل هست ولی مختصر بگم
1- شما پروژه جدیدی ایجاد کنید. انتخاب نوع پروژه هم به این ترتیب هست. other project type بعد setup and deployment بعد visual studio installer بعد از نوع setup project
2- محتویات اصلی پروژه که در پوشه debug هست رو داخل پوشه application folder اضافه کنید
مابقیش رو این طوری بلد نیستم توضیح بدم. باید بدونم برنامه شما به چه صورت هست

نه گزارشات نداره

مابقیش رو این طوری بلد نیستم توضیح بدم. باید بدونم برنامه شما به چه صورت هست

فایل ها رو منتقل کردم . مرحله بعدی چیه ؟

من میخوام در سیستم کاربر هیچ نرم افزاری نصب نکنم حتی SQL :لبخند:

یعنی میخوام به همراه خوده نرم افزار نصب بشن

tara1367
پنج شنبه 24 اسفند 1391, 08:55 صبح
سلام
اول اينكه بايد ديتايست رو بعنوان فايل به پروژت اضافه كني بعد فايل ديتابيست رو توي همين پوشه Application بريزي پس از انتقال دادن تمامي فايل هاي مورد نظر به اين پوشه بايد در پنجره Solution روي نام Setup كليك راست كرده از گزينه Proreties اون پيش نيازهايي رو كه دوستمون گفتند رو تيك بزنيد و از پايين گزينه دوم (يعني فايل setup پيش نيازها از روي سيستم شما ساخته شود) رو تيك زده نهايتا مجددا روي نام Setup كليك راست كرده و گزينه build رو بزنيد فايل setup برنامه در محلي كه source رو ذخيره كردين ساخته ميشه.
موفق باشيد

mohammad2407
سه شنبه 29 اسفند 1391, 13:03 عصر
از دوستان عزیز خواهش میکنم مراحل ساخت Setup از اول تا اخر برای من توضیح بدن . چون من هیچی از Setup نمیدونم !


ديتايست رو بعنوان فايل به پروژت اضافه کناین هم بلد نیستم

خواهشا توضیح بدید

kordestan
سه شنبه 29 اسفند 1391, 14:21 عصر
سلام...دوست من شما هم مثل من هستید با این تفاوت که من فایل نصبش رو ساختم و نرم افزر رو هم تست کامل کردم و ایردی ندارد...من هم با linq نوشتم
برای اینکه یاد بگیری چجوری سیتاپ درست کنی اگه تا حالا موفق نشدی یه ایمیل بزن به آدرس من : rezamostafaei99@yahoo.com اگه خواستی تا من ویدئو رو برات بزارم یا اونو به صورت پی دی اف که خیلی هم به دردت میخوره برات بفرستم...
من هم میخوام نرم افزار رو روی سیستم دیگه بدون sql نصب کنم .... تا حالا که موفق نشدم اگه چیزی دستگیرت شد یه ندا به من هم بده
تا بعد

mohammad2407
سه شنبه 29 اسفند 1391, 15:04 عصر
دیگه نمیدونم باید چی بگم

یعنی ساخت فایل نصب از نوشتن برنامه سخت تره ؟؟؟؟؟

از 24 اسفند ما این تاپیک زدیم تا به امروز جواب درستی ما نگرفتیم

esibarnamenevis
سه شنبه 29 اسفند 1391, 15:05 عصر
سلام...دوست من شما هم مثل من هستید با این تفاوت که من فایل نصبش رو ساختم و نرم افزر رو هم تست کامل کردم و ایردی ندارد...من هم با linq نوشتم
برای اینکه یاد بگیری چجوری سیتاپ درست کنی اگه تا حالا موفق نشدی یه ایمیل بزن به آدرس من : rezamostafaei99@yahoo.com اگه خواستی تا من ویدئو رو برات بزارم یا اونو به صورت پی دی اف که خیلی هم به دردت میخوره برات بفرستم...
من هم میخوام نرم افزار رو روی سیستم دیگه بدون sql نصب کنم .... تا حالا که موفق نشدم اگه چیزی دستگیرت شد یه ندا به من هم بده
تا بعد
سلام
ویدیو و پی دی اف اگه دارید بزارید تا اگه دوستان نیاز داشتند استفاده کنند

esafb52
سه شنبه 29 اسفند 1391, 15:39 عصر
اگر امکانش هست قدری از کدهای linq خود را برای 5 عملی اصلی در دیتابیس بگذارید ممنون میشم
آخه من الان با این تکنولوژی کمی گیچ شدم پس تکلیف برنامه نویسی سه لایه چی میشه؟؟راستش خوب درکش نکردم الان تقریبا با ado.net میدونم باید چطور اینکار رو انجام بدم!!اما با linqنه
ضمنا یه منبع خوب هم براش پیدا نکردم البته 3 تا کتاب یوسف امیری،علی اقدم و اوژن استوار رو دارم ولی .....

kordestan
سه شنبه 29 اسفند 1391, 17:29 عصر
چشم حتما میزارم...فقط من تا حالا فایلی اینجا به اشتراک نگذاشتم باید چیکار کنم....در ضمن ویدئوی این آموزشی حدوداً 20 مگ هستش ... اگه شد همون ویدئوش رو میزارم.....روال اشتراک گزاری رو بگید تا براتون بذارمش
...باید حتما آپش کنم تو یه سرور یا میشه همینجا آپلودش کرد؟

kordestan
سه شنبه 29 اسفند 1391, 17:35 عصر
آقا mohammad اتفاقا درست کردن فایل نصب کاری خیلی ساده است....اگه طرز قرار دادن لینک رو بلد بودم همین الان براتون میذاشتمش که بدونید چه کار راحتی بوده و شما این قدر سخت گرفتینش

kordestan
سه شنبه 29 اسفند 1391, 20:23 عصر
خب دوستان هرکی میخواد نحوه ی ساخت فایل نصب رو یاد بگیره به طور کامل که بتونه از پروژه ای که طراحی کرده یه نرم افزار خوب درست کنه بیاد به این تا پیک:
http://barnamenevis.org/showthread.php?389764-نحوه-ی-ساخت-Setup-از-پروژه

فقط خواهشا نظر یادتون نره

mohammad2407
چهارشنبه 30 اسفند 1391, 01:23 صبح
دوستان من نرم افزار در سیستم کاربر نصب کردم و اجرا هم شد ولی نمیتونه با بانک ارتباط بر قرار کنه خب حق هم داره چون باکی وجود نداره

حالا میخوام بدونم چه نسخه ای از sqlserver2008 باید برای کاربر نصب بشه ؟ ایا این نسخه ( نسخه کاربر ) در سی دی خوده sql server هست یا باید جدا خریداری بشه ؟؟

mohammad2407
چهارشنبه 30 اسفند 1391, 02:27 صبح
دوستان من در سیستم مقصد یه برنامه دارم به نام Import and Export Data حالا چطوری از این قسمت فایل های MDF و LDF اضافه کنم

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

Mahmoud.Afrad
چهارشنبه 30 اسفند 1391, 05:44 صبح
راه بهتر اینه که دیتابیس رو هم در زمان اجرا بسازی. در کلاس Program چک کن اگر دیتابیس موجود نبود ایجادش کن:

[STAThread]
static void Main()
{
string connection = Properties.Settings.Default.Database1ConnectionStr ing.Replace("|DataDirectory|", Application.StartupPath);
try
{
using (DataClasses1DataContext context = new DataClasses1DataContext(connection))
{
if (!context.DatabaseExists())
{
context.CreateDatabase();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new FrmMain());
}

Database1ConnectionString نام کانکشن استرینگ ذخیره شده در setting هست.


یا اینکه
راه بدتر اینه که فایل دیتابیس رو هم به ستاپ اضافه کنی که توصیه نمیشه چون هم حجم ستاپ زیاد میشه و هم اینکه با هر بار نصب برنامه روی یک مسیر، دیتابیس قبلی و اطلاعاتش از بین میره(فرض کن کاربر بخواد برنامه رو برای Repair کردن دوباره نصب کنه و یا اینکه به هر دلیلی بخواد این کارو انجام بده در اینصورت دیتابیس قبلی از بین میره).


البته چون شما اول دیتابیس رو ایجاد کردی و بعد مدل رو از روش ساختی روش اول خوبه. اگر اول مدل رو میساختی یعنی پروژه بدون دیتابیس بود اونوقت در زمان اجرا دیتابیس رو به هر نامی و در هر مسیری میتونستی ایجاد کنی. طبق روش اول البته کانکشن رو دستی مقداردهی میکردید.

rezarko
چهارشنبه 30 اسفند 1391, 09:27 صبح
راه بهتر اینه که دیتابیس رو هم در زمان اجرا بسازی. در کلاس Program چک کن اگر دیتابیس موجود نبود ایجادش کن:

[STAThread]
static void Main()
{
string connection = Properties.Settings.Default.Database1ConnectionStr ing.Replace("|DataDirectory|", Application.StartupPath);
try
{
using (DataClasses1DataContext context = new DataClasses1DataContext(connection))
{
if (!context.DatabaseExists())
{
context.CreateDatabase();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new FrmMain());
}

Database1ConnectionString نام کانکشن استرینگ ذخیره شده در setting هست.


یا اینکه
راه بدتر اینه که فایل دیتابیس رو هم به ستاپ اضافه کنی که توصیه نمیشه چون هم حجم ستاپ زیاد میشه و هم اینکه با هر بار نصب برنامه روی یک مسیر، دیتابیس قبلی و اطلاعاتش از بین میره(فرض کن کاربر بخواد برنامه رو برای Repair کردن دوباره نصب کنه و یا اینکه به هر دلیلی بخواد این کارو انجام بده در اینصورت دیتابیس قبلی از بین میره).


البته چون شما اول دیتابیس رو ایجاد کردی و بعد مدل رو از روش ساختی روش اول خوبه. اگر اول مدل رو میساختی یعنی پروژه بدون دیتابیس بود اونوقت در زمان اجرا دیتابیس رو به هر نامی و در هر مسیری میتونستی ایجاد کنی. طبق روش اول البته کانکشن رو دستی مقداردهی میکردید.


این کد با sqlexpress هم جواب میده؟

esibarnamenevis
چهارشنبه 30 اسفند 1391, 11:39 صبح
کلیپ آموزشی ساخت setup برای برنامه در سی شارپ
خیلی ازشما برنامه نویسان محترم می‌خواین برای برنامه‌هایی که نوشتین برنامه نصب یعنی Setup بگذارید.راههای مختلفی برای اینکاروجودداره.برای مثال اکثرا ازبرنامه Installshield استفاده میکنن که واقعا هم برنامه‌ی قوی هست.اما خود Visual studio هم امکاناتی برای برنامه نصب داره که میتونید برای برنامتون Setup درست کنید ولااقل به هدفتون یعنی نصب برنامه برسید.دراین کلیپی که برای دانلودقرارمیدم بطورخلاصه ومفید و بطور واقعا ساده آموزش ساخت نصب برنامه با Visual studio رو آموزش میده.


دانلود : حجم ۲۰ مگابایت
(http://sourcegozar.ir/dl2/SetupforProject.zip)رمز : www.sourcegozar.com
منبع : سورس گذر

esibarnamenevis
چهارشنبه 30 اسفند 1391, 11:42 صبح
لینک دیگه داخل سایت (http://barnamenevis.org/showthread.php?267703-%D9%81%DB%8C%D9%84%D9%85-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%D8%B3%D8%A7%D8%AE%D8%AA-Setup-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-Visual-Studio-2008)

esibarnamenevis
چهارشنبه 30 اسفند 1391, 11:44 صبح
تالار: Setup و Deployment
(http://barnamenevis.org/forumdisplay.php?145-Setup-%D9%88-Deployment)

esibarnamenevis
چهارشنبه 30 اسفند 1391, 11:47 صبح
سوال: ساخت setup به همراه پایگاه داده (http://barnamenevis.org/showthread.php?139529-%D9%86%D8%AD%D9%88%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-setup-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%A8%D8%A7-%D9%86%D8%B5%D8%A8-SqlServer-%D9%88-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA)
نحوه ساخت setup برای پروژه با نصب SqlServer و دات نت

(http://barnamenevis.org/showthread.php?139529-%D9%86%D8%AD%D9%88%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-setup-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%A8%D8%A7-%D9%86%D8%B5%D8%A8-SqlServer-%D9%88-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA)

esibarnamenevis
چهارشنبه 30 اسفند 1391, 11:47 صبح
ساختن ستاپ و مشکل در ارتباط با بانک اطلاعاتی
(http://barnamenevis.org/showthread.php?380715-%D8%B3%D8%A7%D8%AE%D8%AA%D9%86-%D8%B3%D8%AA%D8%A7%D9%BE-%D9%88-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-%D8%A8%D8%A7%D9%86%DA%A9-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C)

mohammad2407
چهارشنبه 30 اسفند 1391, 13:55 عصر
من برنامه رو نصب کردم ولی نمیدونم چه طوری باید بانک با برنامه تنظیم کنم

در برنامه من از Connection String استفاده نشده . تمام برنامه با LINQ نوشته شده

من الان در سیستم کاربر به جز برنامه اصلی خودم چه چیز دیگه ای برای ارتباط با بانک باید نصب کنم ؟؟؟

mohammad2407
چهارشنبه 30 اسفند 1391, 17:42 عصر
دوستان عزیز الان من کل بانک تبدیل کردم به یک فایل SQL حالا چطوری باید اینو در نرم افزار Import and Export Data وارد و ثبت کنم که نرم افزار با بانک ارتباط داشته باشه

الان وقتی مراحل Importجلو میرم خطا میده و ایمپورت نمیشه

خواهش میکنم راهنمایی کنید

Mahmoud.Afrad
شنبه 03 فروردین 1392, 23:34 عصر
import و export برای دیتا هست نه بانک.
همون کدی که گذاشتم رو به کلاس program اضافه کن و خروجی بگیر. در این حالت دیگه نیازی به فایل دیتابیس نیست و در زمان اولین اجرا دیتابیس ساخته میشه. برای اطمینان هم میتونی تست کنی.

mohammad2407
یک شنبه 04 فروردین 1392, 01:12 صبح
اقا محمود از کد DataClasses1DataContext ایراد میگیره

راستی اقا محمود من چند تا رکورد ( اطلاعات ) برای لوگین از قبل داشتم اون اطلاعات باید چطوری وارد کنم

دیگه نیازی به فایل های اضافه و... نیست ؟

یک سوال دیگه همون SQL نصب کنم که موقع ساخت ستاپ ساخته میشه

mohammad2407
یک شنبه 04 فروردین 1392, 01:50 صبح
اقا محمود چرا کد زیر فقط دو تا از جدول های منو می سازه ؟ من دو تا جدول دارم یکی به نام tahvil و یکی دیگه به نام users

یک سوال دیگه اقا محمود اگر بخوام یک رکورد به جدول users اظافه کنم به چه شکل هست ؟



[STAThread]
static void Main()
{
string connection = Properties.Settings.Default.irankhodroConnectionSt ring.Replace("|DataDirectory|", Application.StartupPath);
try
{
using (tahvilDataContext context = new tahvilDataContext(connection))
using (usersDataContext context2 = new usersDataContext(connection))
{
if (!context.DatabaseExists()||!context2.DatabaseExis ts())
{
context.CreateDatabase();
context2.CreateDatabase();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form13());
}
}
}

Mahmoud.Afrad
یک شنبه 04 فروردین 1392, 01:58 صبح
دو تا مدل دو تا دیتابیس میسازه.
باید همه موجودیت ها(جداول) را به یک مدل اضافه کنید نه دو تا. در کلاس program هم از روی همون یک مدل دیتابیس رو بسازید.
usersDataContext را از پروژه حذف کنید و همه جدول ها رو به tahvilDataContext اضافه کنید.

mohammad2407
یک شنبه 04 فروردین 1392, 02:23 صبح
یعنی هیچ راهی وجود نداره

یعنی تمام نرم افزار های دنیا باید یک جدول داشته باشن ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

غیر ممکنه اقا محمود

نمیشه

mohammad2407
یک شنبه 04 فروردین 1392, 02:45 صبح
اهان گرفتم چه کار کنم

اقا محمود من فکر کردم میگی همه جدول ها رو یکی بکن

فقط خواهشا بهم بگو چطوری یک رکورد اضافه کنم به تیبل یوزر از همون قسمت program

Mahmoud.Afrad
یک شنبه 04 فروردین 1392, 02:57 صبح
بعد از CreateDatabase میتونی شئ یوزر بسازی و insert کنی.

mohammad2407
یک شنبه 04 فروردین 1392, 02:59 صبح
اقا محمود این کارو میکنم خطا میده میشه یک مثال بزنید فکر میکنم کد من اشتباه باشه

mohammad2407
یک شنبه 04 فروردین 1392, 03:53 صبح
اقا محمود کد من به صورت زیر هم برای INSERT


if (!context.DatabaseExists())
{
context.CreateDatabase();
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=irankhodro;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand("insert into dbo.users(username,password,firstname,lastname,gen der,post,uinsert,udelete,uupdate,userch,bachup,uus ers,ureport,usystem,udatafull,) values ('mohammad','240742177','mohammad','mohammad','م کر','modir','True','True','True','True','True', 'True','True','True','True')", con);


cmd.ExecuteNonQuery();
con.Close();

}

Mahmoud.Afrad
یک شنبه 04 فروردین 1392, 11:08 صبح
کانکشن استرینگت اشتباهست.
در ضمن مگر LinqToSql کار نمیکنی دیگه چرا مستقیم کد ADO.NET نوشتی. همونطور که قبلا اینزرت میکردی حالا هم انجام بده:

if (!context.DatabaseExists())
{
context.CreateDatabase();
User u = new User() { ... };
context.users.InsertOnSubmit(u);
context.SubmitChanges();
}

mohammad2407
چهارشنبه 28 فروردین 1392, 03:10 صبح
اقا محمود برای اولین بار که برنامه روی یک سیستم جدید اجرا میشه توسط کد زیر بانک به صورت 100 درصد درست و عالی ساخته میشه و کار هم میکنه

[STAThread]
static void Main()
{
string connection = Properties.Settings.Default.irankhodroConnectionSt ring.Replace("|DataDirectory|", Application.StartupPath);
try
{
using (tahvilDataContext context = new tahvilDataContext(connection))
using (usersDataContext context2 = new usersDataContext(connection))
{
if (!context.DatabaseExists()||!context2.DatabaseExis ts())
{
context.CreateDatabase();
context2.CreateDatabase();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form13());
}
}
}



ولی اگر فایل های بانک ( 2 تا فایل ) از مسیر c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA حذف بشن و بعد برنامه اجرا کنیم خطا میده و نمیتونه بانک از دوباره بسازه

چه راهی وجود داره

Mahmoud.Afrad
چهارشنبه 28 فروردین 1392, 05:03 صبح
برای کاربر نهایی که این اتفاق نمیفته چون اگر پاک کنه اطلاعاتش میپره.
میتونی امکان اینو بدی که کاربر خودش محل دیتابیس رو مشخص کنه:

using System;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Xml.Linq;
using Model;
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);


XElement xEl = XElement.Load(Application.ExecutablePath + ".config");
XElement xCon = xEl.Descendants("connectionStrings").Descendants().SingleOrDefault(i => i.Attribute("name").Value == "WindowsFormsApplication1.Properties.Settings.Datab ase1ConnectionString");
XAttribute xAtt = xCon.Attribute("connectionString");
string dbPath = Regex.Match(xAtt.Value, @"AttachDbFilename=.*\.mdf", System.Text.RegularExpressions.RegexOptions.Ignore Case).Value.Split('=').Last().Replace("|DataDirectory|", Application.StartupPath);

if (!File.Exists(dbPath))
{
using (SaveFileDialog sfd = new SaveFileDialog())
{
sfd.DefaultExt = "mdf";
if (sfd.ShowDialog() == DialogResult.OK)
{
dbPath = sfd.FileName.ToLower().EndsWith(".mdf") ? sfd.FileName : sfd.FileName + ".mdf";
xAtt.Value = Regex.Replace(xAtt.Value, @"AttachDbFilename=.*\.mdf", @"AttachDbFilename=" + dbPath);
xCon.SetAttributeValue("connectionString", xAtt.Value);
xEl.Save(Application.ExecutablePath + ".config");
}
}
}
try
{
using (DataClasses1DataContext context = new DataClasses1DataContext(dbPath))
{
if (!context.DatabaseExists())
{
context.CreateDatabase();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}


Application.Run(new Forms.FrmMain());
}
}


WindowsFormsApplication1.Properties.Settings.Datab ase1ConnectionString اسم کانکشنی هست که میتونی از فایل App.config بدست بیاریش.

mohammad2407
چهارشنبه 28 فروردین 1392, 12:26 عصر
اقا محمود 100 درصد درست میگی .

دیروز یکی از پروژه ها رو بردم روی لپ تاپم چون در بانک تغییراتی ایجاد کرده بودم رفتم از مسیر گفته شده فایل های دیتا بیس قبلی ( قدیمی ) حذف کردم .

بعد برنامه اجرا کردم دیدم خطا داد و نتونست بانک ایجاد کنه در همون مسیر ؟؟؟

حالا چرا برای من این خطا میاد ؟ چرا نمیتونه بانک در همون مسیر قبلی ایجاد کنه ؟

باز هم تشکر فراوان