PDA

View Full Version : TimeoutException



Bahar_HS
پنج شنبه 04 مهر 1387, 12:32 عصر
با سلام
برنامه ای که نوشتم ، کانکشنش باز نمیشه وTimeoutExceptionمیده ،چطور ی این اشکال رو برطرف کنم؟
با سپاس



برا ی کشف اقیانوس های جدید باید شهامت ترک ساحل آرام خود را داشته باشیم،این جهان جهان تغییر است نه تقدیر.

SMRAH1
پنج شنبه 04 مهر 1387, 12:57 عصر
َیاد ایراد سخت افزاری (مثل قطعی سیم اتصال و ..) داره.با خوده ویندوز ببین می تونی کانکت شی.
اگر هم ایراد از کد (و نه تنظیمات باشه)، باید کد رو بگذاری تا بشه نظر داد.

Bahar_HS
پنج شنبه 04 مهر 1387, 14:44 عصر
با سلام
ممنون از راهنمایی تون،



try
{
(if (con.State != ConnectionState.Open)
con.Open();
throw new TimeoutException("باز نمیشه");
}
catch (TimeoutException ex)
{ MessageBox.Show(ex.Message); }

کد کانکشن رو این طوری نوشتم،با این که پیام"باز نمیشه"نمایش داده میشه
ولی وقتی جدول SQLرو چک کردم دیدم که داده هایی رو که از طریق فرم وارد کردم ،ذخیره شده ،البته با این مشکل که همه ی داده های فارسی به صورت (؟؟؟) ذخیره شدند ،با این که نوع داده های فیلد های جدول روvarchar تعریف کردم ،

پیام راهنمایی که داده می شه میگه یا زمان کانکت کوتاهه یا این کانکشن ایراد داره،
من فکر می کنم ابراد از کد باشه ،چطور ی میشه فهمید ایراد از برنامه است یا سیستم؟

گفته بودید از طریق وندوز کانکت بشم ، میشه بیشتر توضیح بدید؟چطوری؟

SMRAH1
جمعه 05 مهر 1387, 00:40 صبح
سلام
1) کاش کودتون رو توی تگ code بگذارید مثل


try
{
if (con.State != ConnectionState.Open)
con.Open();
throw new TimeoutException("باز نمیشه");
}
catch (TimeoutException ex)
{
MessageBox.Show(ex.Message);
}
تا خوانایی بالا بره.

2) در کدتون اول con.Open را اجرا تا connection باز بشه و بعد استثنایی با این عنوان که باز نمی شه اجرا کردید.در حالی که connection شاید باز شده باشه (در واقع استثنای 'باز نمیشه' در هر حال اجرا می شود چه پابگاه باز بشه و چه نشه).البته با توضیحی که دادی یعنی پایگاه باز شده و کار مورد نظر انجام شده و فقط ایراد توی منطق برنامه ی شما است.البته اجازه بدهید که برنامه خودش TimeoutException رو تولید کنه و اگر شما هم می خواهید استثنایی رو اجرا کنید باید از کلاس Exception استفاده کنید.
در هر حال این قسمت برنامه،عبارت زیر کفایت می کند.


try
{
if (con.State != ConnectionState.Open)
con.Open();
}
catch (TimeoutException ex)
{
MessageBox.Show(ex.Message + "\n باز نشده است");
}

3) در مورد علامت سئوال به جای عبارت فارسی ،بحث های زیادی شده ،کمی جستجو کنید قطعا به فهرستی از اشکالات ممکن برخواهید خورد.که باید همه رو یکی یکی چک کنید.در هر حال خوشبختانه،استاد تر از من در این مقوله هست و من خود را جایز اظهار نطز نمی دانم.

موفق باشید