تالار گفتمان مانشت

نسخه‌ی کامل: تشخیص نوع خطا در اتصال به پایگاه داده
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان.چجوری میشه تشخیص داد خطایی که برای اتصال به بانک اطلاعاتی در Sql در برنامه C#‎‎ تحت ویندوزی رخ داده مربوط به چیه؟!
درواقع بشه نوع خطا رو تو این سه مورد از هم تفکیک کرد :
1-Sql Server نصب نیست
2-مسیر sql server درست نیست
3-بانک اطلاعاتی مورد نظر وجود ندارد
(17 بهمن 1393 08:05 ب.ظ)tabassomesayna نوشته شده توسط: [ -> ]سلام دوستان.چجوری میشه تشخیص داد خطایی که برای اتصال به بانک اطلاعاتی در Sql در برنامه C#‎‎ تحت ویندوزی رخ داده مربوط به چیه؟!
درواقع بشه نوع خطا رو تو این سه مورد از هم تفکیک کرد :
۱-Sql Server نصب نیست
۲-مسیر sql server درست نیست
۳-بانک اطلاعاتی مورد نظر وجود ندارد

به خطای خاصی برخوردید یا می خواید برنامه تون چنین قابلیتی داشته باشه؟
جوابو پیدا کردم براتون می ذارم.Smile
نه میخوام برنامه این قابلیتو داشته باشه.
سلام

اینجا دو بحث مطرح میشه:

1- نحوه ی اتصال به بانک
* استفاده از ORM
* استفاده از کامپوننت هایی که سرویس اتصال رو provides می کنند

2- نحوه ی کد نویسی
row sql استفاده شده یا نه

جواب کلی اینکه شما میتونید خطا رو هندل کنید و به تناسب اون خطا پیغامی رو به کاربر نشون بدید البته بهتره سعی کنید کار به اونجا نکشه و ما خودمون ورودی هایی که از کاربر میگیریم رو به درسی بررسی کنیم
با استفاده از دستور
try
}
{
cache
}
{
throw
}
{
می تونید این کار را انجام بدید
مثلا اگه دیتا بیس Open نشد پیام خاصی نشون بده
به نظر من خوب نیست کاربرا بتونن نوع خطا رو تشخیص بدن!!!!! چون اونوقت میتونن به نوعی بفهمن چطوری به پایگاه داده تزریق کنن
(17 بهمن 1393 10:24 ب.ظ)samaneh@90 نوشته شده توسط: [ -> ]به نظر من خوب نیست کاربرا بتونن نوع خطا رو تشخیص بدن!!!!! چون اونوقت میتونن به نوعی بفهمن چطوری به پایگاه داده تزریق کنن

قرار نیس به کاربر پیغام رو نشون بدیم.خودم میخوام به نوع خطا دسترسی داشته باشم.

(17 بهمن 1393 09:25 ب.ظ)one hacker alone نوشته شده توسط: [ -> ]سلام

اینجا دو بحث مطرح میشه:

۱- نحوه ی اتصال به بانک
* استفاده از ORM
* استفاده از کامپوننت هایی که سرویس اتصال رو provides می کنند

۲- نحوه ی کد نویسی
row sql استفاده شده یا نه

جواب کلی اینکه شما میتونید خطا رو هندل کنید و به تناسب اون خطا پیغامی رو به کاربر نشون بدید البته بهتره سعی کنید کار به اونجا نکشه و ما خودمون ورودی هایی که از کاربر میگیریم رو به درسی بررسی کنیم
خب ورودی ها که همون اول بررسی میشن.وقتی نتونه کانکشن رو اوپن کنه این خطا هایی که گفتم رخ میده.
یه جواب اینه که با توجه به شماره خطا ارور رو تشخیص بدیم.در واقع با استفاده از متغیری که از نوع Exception هست.میخواستم ببینم راه ساده تری نیس؟
کار من سی شارپ نیست ولی به نظرم قبل از وصل شدن به پایگاه داده اینارو چک کنید.
(17 بهمن 1393 10:53 ب.ظ)blackhalo1989 نوشته شده توسط: [ -> ]کار من سی شارپ نیست ولی به نظرم قبل از وصل شدن به پایگاه داده اینارو چک کنید.

چگونه ؟! سوال این است..
شرکت ها معمولا نیرو میفرستن تا سیستم رو براشون نصب کنه. احتیاجی به این کارها نیست اصلا.
اینو میدونم ولی برای این پروژه ای که مینویسیم نیازه.

دوستان کسی راه حلی به ذهنش نرسید؟؟
سلام،
به این لینک سر بزن.

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

یه راه دیگه که به ذهنم رسید اینه که در این قسمت از برنامه
catch (Exception ex)
{
Debug.WriteLine(ex);
}
که اگر خطایی باشه،پیغام رو میده،پیغام داده شده رو به جای نمایش برای خودت نگهدار و مثلا با مقایسه شماره ی ارور داده شده با شماره ارورهای موردنظرت، می تونی کاری رو که می خوای انجام بدی.

امیدوارم مفید بوده باشه!Smile
(19 بهمن 1393 09:58 ق.ظ)Bahar_HS نوشته شده توسط: [ -> ]یه راه دیگه که به ذهنم رسید اینه که در این قسمت از برنامه
catch (Exception ex)
{
Debug.WriteLine(ex);
}
که اگر خطایی باشه،پیغام رو میده،پیغام داده شده رو به جای نمایش برای خودت نگهدار و مثلا با مقایسه شماره ی ارور داده شده با شماره ارورهای موردنظرت، می تونی کاری رو که می خوای انجام بدی.

امیدوارم مفید بوده باشه!Smile
اره به این نتیجه رسیده بودم که باید شماره ی ارور کار کنم ولی یه چیزی که هست اینه که شماره ی ارور ها خیلی زیاده یکم کارو سخت میکنه.
به این لینک مراجعه کنید:

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

اگر می خواید همه ی اررورها رو تشخیص بده که باید همه رو در نظر بگیرید،لینک بالا اررورها رو دسته بندی کرده.می تونید براساس کلاس بندی گفته شده کار کنید.
می تونید فقط شماره اررورهای موردنظرتون رو در نظر بگیرید.و بقیه ی ارورها رو با یک پیغام یکسان در نظر بگیرید.
لینک مرجع