PDA

View Full Version : عدم اجراي يك خط كد!



donya100
دوشنبه 18 مرداد 1389, 12:21 عصر
سلام
من بخش كدي كه مربوط به ارتباط به پايگاه داده ميشه را در try - catch قرار دادم . حالا اگه برنامه در اين بخش با خطا مواجه بشه خط اول برنامه ( كه ربطي هم به پايگاه داده نداره و فقط visible يك عكس از نوع gif را true مي كنه ) اجرا نميشه و بعد از اينكه پيغام خطاي درون catch نمايش داده شد تازه اين عكس نمايش داده ميشه !!
براي حل اين مشكل كسي راهي مي دونه؟


pbxLine1.Visible = true;
this.Cursor = Cursors.WaitCursor;
try
{
SqlConnection cn = Connect_DB();
if (cn.State == ConnectionState.Open)
{
this.Hide();
LoginForm fc = new LoginForm();
fc.ShowDialog();
this.Close();
}
else if (cn.State == ConnectionState.Closed)
{
this.Hide();
ConfigForm fl = new ConfigForm();
fl.ShowDialog();
this.Close();
}
}
catch (Exception ex)
{
this.Hide();
ConfigForm fl = new ConfigForm();
fl.ShowDialog();
this.Close();
}

M.YasPro
دوشنبه 18 مرداد 1389, 12:52 عصر
دوست عزیز مگه میشه این دو خط :


pbxLine1.Visible = true;
this.Cursor = Cursors.WaitCursor;

اجرا نشه و کامپایلر به خط سوم بره ؟

donya100
دوشنبه 18 مرداد 1389, 13:21 عصر
اما در كد من داره اتفاق مي افته!!

حامد مصافی
دوشنبه 18 مرداد 1389, 13:30 عصر
به جاي دو خط اول كد اين سه خط را بنويسيد.


pbxLine1.Visible = true;
this.Cursor = Cursors.WaitCursor;
Application.DoEvents();

donya100
دوشنبه 18 مرداد 1389, 13:40 عصر
با اين كد عكس نمايش داده ميشه . اما حركت نداره
حركت تصوير بعد از اجراي كد catch درست ميشه.

حامد مصافی
دوشنبه 18 مرداد 1389, 13:42 عصر
كاملاً طبيعيه؛
مگر اينكه كد هاي دسترسي به Database را در يك Thread جداگانه اجرا كنيد

M.YasPro
دوشنبه 18 مرداد 1389, 13:52 عصر
كاملاً طبيعيه؛
مگر اينكه كد هاي دسترسي به Database را در يك Thread جداگانه اجرا كنيد


من متوجه نمیشم دوست عزیز مگه میشه بدون هیچ شرط بازدارنده ای خط اول و دوم اجرا نشه و یکباره خط سوم اجرا بشه ؟!!
من توی ذهنم چه قانونی رو در نظر نمیگیرم !!!!

donya100
دوشنبه 18 مرداد 1389, 14:57 عصر
منم دقيق نمي دونم اما وقتي كد با خطا مواجه مي شه اين خط اجرانمي شه . البته بايد بگم فقط خط مربوط به نمايش عكس هست كه اجرا نمي شود نه خط مر بوط به cursor

gwbasic
سه شنبه 19 مرداد 1389, 07:29 صبح
منم دقيق نمي دونم اما وقتي كد با خطا مواجه مي شه اين خط اجرانمي شه . البته بايد بگم فقط خط مربوط به نمايش عكس هست كه اجرا نمي شود نه خط مر بوط به cursor

ببینید اگه برنامه رو debug کنید می بینید که اجرا می شه اما چون Gif در UI وجود داره و داعما باید pictureBox رفرش شود و از طرفی بدلیل ارتباط با DB برنامه هنگ کرده پس عمل رفرش روی نمی دهد برای همین بهتر است که کار با DB در یک Thread دیگری غیر از UI اجرا شود که UI هنگ نکند