در مورد اجرای برنامه ساخته شده با c#

دوستان من یه برنامه درست کردم که در اون تمامی کانکشن استرینگهای فرمها و دیتاست هامو به app.config ربط دادم
بعد کانکشن استرینگ app.config رو هم دیتابیسمو بهش اتچ کردم
فایل دیتابیسم هم در پوشه دیباگ کنار فایل exe و در پوشه ای که کنار در پوشه دیباگ قرار داره قرار دادم
در حال حاضر برناممو
از داخل فلش در یک سیستم دیگه​
اجرا میکنم هیچ مشکلی نداره هم ثبت میکنه هم گزارش میگیره هم لاگین میکنه و...
البته
در ویندوز دیگری که sql نداشت​
امتحان کردم اصلا اجرا نشد!!در همان سیستم
یکی از دوستانم که برنامه نویسه میگه اصلا همچین چیزی نمیشه برنامت مشکل داره
حالا سوالات من اینه
1-اگر برنامم مشکل داره چرا تمامی کارها رو بدون مشکل انجام میده(ثبت،گزارش گیری،لاگین و...)بدون خطا
2-چرا در ویندوز دیگر که اس کیو ال نداشت ،اجرا نشد وهیچ خطایی هم نداد(البته در اولین فرم باید کاربر لاگین کنه که برای لاگین کردن نیاز به اتصال به بانک داره)
3-چرا وقتی در ویندوزی که اس کیو ال داره و دیتابیس اس کیو ال stop میکنم بازهم نرم افزار بدون هیچ مشکلی کار میکنه(ویندوز سیستم دیگر)
امیدوارم سوالاتم بدون پاسخ نمونه
با تشکر
 

the_king

مدیرکل انجمن
دوستان من یه برنامه درست کردم که در اون تمامی کانکشن استرینگهای فرمها و دیتاست هامو به app.config ربط دادم
بعد کانکشن استرینگ app.config رو هم دیتابیسمو بهش اتچ کردم
فایل دیتابیسم هم در پوشه دیباگ کنار فایل exe و در پوشه ای که کنار در پوشه دیباگ قرار داره قرار دادم
در حال حاضر برناممو
از داخل فلش در یک سیستم دیگه​
اجرا میکنم هیچ مشکلی نداره هم ثبت میکنه هم گزارش میگیره هم لاگین میکنه و...
البته
در ویندوز دیگری که sql نداشت​
امتحان کردم اصلا اجرا نشد!!در همان سیستم
یکی از دوستانم که برنامه نویسه میگه اصلا همچین چیزی نمیشه برنامت مشکل داره
حالا سوالات من اینه
1-اگر برنامم مشکل داره چرا تمامی کارها رو بدون مشکل انجام میده(ثبت،گزارش گیری،لاگین و...)بدون خطا
2-چرا در ویندوز دیگر که اس کیو ال نداشت ،اجرا نشد وهیچ خطایی هم نداد(البته در اولین فرم باید کاربر لاگین کنه که برای لاگین کردن نیاز به اتصال به بانک داره)
3-چرا وقتی در ویندوزی که اس کیو ال داره و دیتابیس اس کیو ال stop میکنم بازهم نرم افزار بدون هیچ مشکلی کار میکنه(ویندوز سیستم دیگر)
امیدوارم سوالاتم بدون پاسخ نمونه
با تشکر

برنامه ای که نیاز به بانک اطلاعاتی تحت SQL داره، در صورت نصب نبودن SQL Server به هیچ عنوان نمی تونه از اون بانک اطلاعاتی استفاده کنه.
عدم دسترسی به بانک اطلاعاتی بصورت عادی منجر به نمایش پیغام خطا میشه، اما اگر در کدتان try catch استفاده کرده باشید می تونه این خطا رو به کاربر نشون نده.
اگر برنامه شما بدون مشکل کار می کنه مربوط به کد داخل شه، اما به هر حال بانک اطلاعاتی تحت SQL Server با متوقف بودن سرویس SQL Server قابل دسترسی نیست،
فقط فراموش نکنید که هر نسخه از SQL Server سرویس های مخصوص به خودش رو داره، احتمال داره که سرویس نسخه دیگری را متوقف کرده باشید.
در ضمن میشه از داخل کد برنامه سرویس رو وادار به Start کرد، کافیه دستوراتی مثل NET START MSSQLSERVER یا NET START MSSQL$SQLEXPRESS تحت
Commandline اجرا بشه.
 
برنامه ای که نیاز به بانک اطلاعاتی تحت SQL داره، در صورت نصب نبودن SQL Server به هیچ عنوان نمی تونه از اون بانک اطلاعاتی استفاده کنه.
عدم دسترسی به بانک اطلاعاتی بصورت عادی منجر به نمایش پیغام خطا میشه، اما اگر در کدتان try catch استفاده کرده باشید می تونه این خطا رو به کاربر نشون نده.
اگر برنامه شما بدون مشکل کار می کنه مربوط به کد داخل شه، اما به هر حال بانک اطلاعاتی تحت SQL Server با متوقف بودن سرویس SQL Server قابل دسترسی نیست،
فقط فراموش نکنید که هر نسخه از SQL Server سرویس های مخصوص به خودش رو داره، احتمال داره که سرویس نسخه دیگری را متوقف کرده باشید.
در ضمن میشه از داخل کد برنامه سرویس رو وادار به Start کرد، کافیه دستوراتی مثل NET START MSSQLSERVER یا NET START MSSQL$SQLEXPRESS تحت
Commandline اجرا بشه.
ممنون از راهنماییت
ولی من راستش جوابمو نگرفتم
من اصلا دیتابیسمو اتچ نکردم داخل sql server managment!!
سوال بعدیم اینه که آیا دیتابیسهایی که به داخل نرم افزار ساخته شده اتچ شده باید در سیستم مشتری در اس کیو ال اتچ بشه یا نه؟
لطف کنید اگر امکانش هست یه راهنمایی کلی برای اینکه نرم افزار در همه سیستم ها اجرا بشه بکنین
 
آخرین ویرایش:

the_king

مدیرکل انجمن
ممنون از راهنماییت
ولی من راستش جوابمو نگرفتم
من اصلا دیتابیسمو اتچ نکردم داخل sql server managment!!
سوال بعدیم اینه که آیا دیتابیسهایی که به داخل نرم افزار ساخته شده اتچ شده باید در سیستم مشتری در اس کیو ال اتچ بشه یا نه؟
لطف کنید اگر امکانش هست یه راهنمایی کلی برای اینکه نرم افزار در همه سیستم ها اجرا بشه بکنین
اصولا SQL Server برای استفاده برنامه هایی است که یک فرد مجرب نصب شون می کنه، برای برنامه هایی که نصب با چند کلیک ساده انجام میشه
مناسب نیست. انواع تداخل ها و خطا ها و دلایل بروز خطا داره که کاربران عادی از عهده رفع کردنشون بر نمیان. برنامه شما می تونه برخی
از این موارد خطا رو بصورت خودکار کنترل و رفع کنه اما نه همه موارد.

الزامی نیست که بانک اطلاعاتی حتما پیش از اجرای برنامه Attach بشه، مثلا بانک اطلاعاتی های تحت SQL Server Express بصورت عادی با
مسیر فایل بانک اطلاعاتی شناسایی می شوند، نه نام بانک اطلاعاتی Attach شده. خودشون بصورت خودکار موقع دسترسی Attach می شوند و موقعی که
ارتباط قطع شد بصورت خودکار Detach می شوند. برای سایر بانک اطلاعاتی ها هم میشه Attach کردن رو از داخل برنامه و بدون دخالت کاربر و
بدون نیاز به SQL Server Management Studio انجام داد. دستور SQL ئه CREATE DATABASE dbname ON PRIMARY (FILENAME="filepath") FOR ATTACH
بانک اطلاعاتی ای با مسیر فایل filepath رو با اسم dbname در سرور Attach خواهد کرد. دستور SQL ئه EXEC sys.sp_detach_db dbname
بانک اطلاعاتی ای با نام dbname رو در سرور Detach خواهد کرد.


رجوع شود به :
import کردن یک Database
پشتیبان گیری از دیتا بیس
 

جدیدترین ارسال ها

بالا