PDA

View Full Version : چگونه از C# با پایگاه داده SQL فایل اجرایی Setup درست کنیم هر کاری می کنم خطا میده!



tahamoqaddam
دوشنبه 18 آذر 1398, 12:31 عصر
سلام وقت دوستان بخیر
من یه برنامه دارم
که دیتابیسش اینجوریه
151095
و به این شکل وصل شدم
151096
و این هم نوع (اصطلاحا )فراخوانی من در برنامه هستش
151097
حالا فایل app.config زیر رو هر جوری تغییر می دم خطا می ده و در کامپیوتر دیگر اجرا نمیشه
لطفا راهنمایی کنید
151098

Mahmoud Zaad
دوشنبه 18 آذر 1398, 12:50 عصر
سلام
نام سروری که نوشتید MOQADDAM هست که چون در سیستم مقصد این سرور وجود نداره خطا میده. در ساده ترین حالت می تونید نام سرور رو به صورت یک نقطه (.) یا local یا localhost قرار بدید.

tahamoqaddam
دوشنبه 18 آذر 1398, 15:13 عصر
دوست عزیز بازم اجرا نمیشه
این خطا رو در زمان اجرا موفع خوندن از پایگاه داده میده
151099

Mahmoud Zaad
دوشنبه 18 آذر 1398, 15:34 عصر
بخش آخر کانکشن استرینگ رو با عبارت زیر جایگزین کنید:
Integrated Security=SSPI;Persist Security Info=False;
البته باید توجه کنید در سیستم مقصد بتوان هم با ویندوز هم با sql server لاگین کرد. در منیجمنت استودیو بر روی نام سرور کلیک راست کنید و properties رو بزنید بعد در تب security از قسمت server authentication باید گزینه دوم یعنی sql server and windows authentication mode رو انتخاب کنید.

tahamoqaddam
دوشنبه 18 آذر 1398, 18:20 عصر
بخش آخر کانکشن استرینگ رو با عبارت زیر جایگزین کنید:
Integrated Security=SSPI;Persist Security Info=False;
البته باید توجه کنید در سیستم مقصد بتوان هم با ویندوز هم با sql server لاگین کرد. در منیجمنت استودیو بر روی نام سرور کلیک راست کنید و properties رو بزنید بعد در تب security از قسمت server authentication باید گزینه دوم یعنی sql server and windows authentication mode رو انتخاب کنید.

منظورتون اینه باید در سیستم مقصد SQL Server نصب بشه و پایگاه داده من به اون اتچ بشه!

Mahmoud Zaad
دوشنبه 18 آذر 1398, 19:43 عصر
مگه در سیستم مقصد sql server رو نصب نکردید؟ قاعدتا باید یک نسخه ازش نصب باشه

tahamoqaddam
دوشنبه 18 آذر 1398, 23:13 عصر
مگه در سیستم مقصد sql server رو نصب نکردید؟ قاعدتا باید یک نسخه ازش نصب باشه
پس بهترین راه حل تبدیل بانک اطلاعاتی sql server به sqlexpress می باشد
ولی نمی دونم چرا نمی تونم وصل بشم و این خطا رو میده
لطفا راهنمایی کنید
151102

the king
دوشنبه 18 آذر 1398, 23:39 عصر
پس بهترین راه حل تبدیل بانک اطلاعاتی sql server به sqlexpress می باشد
ولی نمی دونم چرا نمی تونم وصل بشم و این خطا رو میده
لطفا راهنمایی کنید
151102
نیازی به تبدیل خاصی نیست چون اگر کاربر نسخه SQL Server مناسب رو بکار ببره میتونه هم از SQL Server و هم SQL Server Express با Connection String مناسب متصل بشه.
ولی شما بهتره در ابتدای اجرای برنامه تون داخل try catch یکبار اتصال به پایگاه داده رو امتحان کنید و اگر نشد به کاربر پیام حطای مناسب رو با جزئیات Exception.Message نشون بدید تا بدونه مشکل از چیه.
اگر پیام با جزئیات مناسب رو به کاربر نشون ندید رفع اشکال سخت تر میشه.

خطای عدم اتصال به سرور میتونه دلایل خیلی متعددی داشته باشه، از نصب نبودن درست SQL Server گرفته تا غیر فعال بودن سرویسش، در حال اجرا نبودن سرویس و ...
بهتره اول وضعیت سرویس های SQL Server رو در Task Manager یا ابزار Services.msc ویندوز بررسی کنید که Running هستند یا نه.
SQL Server Browser برای لیست کردن Instance ها باید در حال Running باشه.
سرویس های SQL Server هم که هر کدوم نام و Description متفاوتی دارند، مثلا MSSQL$SQLEXPRESS که باید Running باشند تا بشه بهشون متصل شد.
اگر در حال اجرا نبودند و تلاش کردید Start شون کنید و خطا دادند اون موقع معلوم میشه که یک مشکل در نصب و اجرای سرویس هست که دیگه ربطی به ConnectionString نداره.

Mahmoud Zaad
سه شنبه 19 آذر 1398, 08:34 صبح
این خطا زمانی هست که نام سرور رو اشتباه تایپ کردید (یعنی نام سرور موجود نیست) یا در دسترس نیست. علاوه بر مواردی که دوستمون گفتند شما در sql server configuration manager در All Programs بررسی کنید ببینید چه سرورهایی نصب شده و وضعیت run بودن آنها چطور هست. (این برنامه که اجرا شد در درخت سمت چپ، شاخه ی sql server ... services رو پیدا کنید روش کلیک کنید در سمت راست لیست سرویسها رو براتون میاره بعد در ستون state برای بعضی آیتم ها نوشته running و برای بعضیها stopped. باید سرویس های اصلی مثل sql server(sql express) و هر اینستنسی که نصب کردید باید running باشند)
نکته دیگه اینکه بعضا در بعضی سیستم ها باید به جای نقطه نام کامپیوتر جاری رو نوشت تا بتونید متصل بشید مثلا به جای .\sqlexpress باید بنویسید myCompurtName\sqlexpress

tahamoqaddam
سه شنبه 19 آذر 1398, 09:42 صبح
این خطا زمانی هست که نام سرور رو اشتباه تایپ کردید (یعنی نام سرور موجود نیست) یا در دسترس نیست. علاوه بر مواردی که دوستمون گفتند شما در sql server configuration manager در All Programs بررسی کنید ببینید چه سرورهایی نصب شده و وضعیت run بودن آنها چطور هست. (این برنامه که اجرا شد در درخت سمت چپ، شاخه ی sql server ... services رو پیدا کنید روش کلیک کنید در سمت راست لیست سرویسها رو براتون میاره بعد در ستون state برای بعضی آیتم ها نوشته running و برای بعضیها stopped. باید سرویس های اصلی مثل sql server(sql express) و هر اینستنسی که نصب کردید باید running باشند)
نکته دیگه اینکه بعضا در بعضی سیستم ها باید به جای نقطه نام کامپیوتر جاری رو نوشت تا بتونید متصل بشید مثلا به جای .\sqlexpress باید بنویسید myCompurtName\sqlexpress
در این قسمتی که گفتین رفتم ولی در لیست sql server services من اصلا sql express ندارم چطور می تونم اضافه کنم که داشته باشم

Mahmoud Zaad
سه شنبه 19 آذر 1398, 11:21 صبح
یه اسکرین شات ازش بفرستید

tahamoqaddam
سه شنبه 19 آذر 1398, 13:00 عصر
یه اسکرین شات ازش بفرستید
در تصویر زیر من اصلا sqlexpress ندارم
151103
در تصویر زیر من در sevises هم اصلا sql express ندارم
151104
ولی در تصویر زیر در کنترل پنل sqlexpress دارم پس این کجاست من پیدا نمی کنم
151105

Mahmoud Zaad
سه شنبه 19 آذر 1398, 14:18 عصر
مشکلی نیست. در تصویر اول، اون ردیفهایی که به صورت SQL Server(xxxxx) هستند نام اینستنس هایی هست که روی سیستم نصب هست و همواره باید رانینگ باشند.
نام سرور شما MOQADDAM هست و با این اسم ثبت شده. حالا برای ورود به منیجمنت استودیو باید عبارت .\MOQADDAM رو بنویسید و وارد بشید و تنظیمات پست 4 رو بررسی کنید.