PDA

View Full Version : سوال: رفتن به صفحات تایید و اخطار



am_sanatiz
دوشنبه 30 اردیبهشت 1387, 14:38 عصر
سلام

من در VS2005 یک asp.net web site با استفاده از زبان c# ایجاد نمودم حال با کلیک روی دکمه ای اطلاعات شخصی را ذخیره می کنم در انتهای قسمت try برای اینکه به صفحه تایید ثبت نام بروم این کد را وارد نمودم

Response.Redirect("ok.aspx");
و در قسمت catch

Response.Redirect("error.aspx");
اما اگر اطلاعات درست هم ثبت گردند باز هم صفحه error ظاهر می گردد.
اصلا اینچنین کاری برای ثبت اطلاعات درست است ؟ و اگر درست می باشد مشکل این کد چیست.

twelve
دوشنبه 30 اردیبهشت 1387, 14:46 عصر
شما باید کل کد ها رو بذارید ، این که چیزی رو مشخص نمیکنه
اما یک سوال :ا در صفحه ارور پیغام خطایی که مشاهده میکنید بعد از هر دو عملیات یکسان است ؟

am_sanatiz
دوشنبه 30 اردیبهشت 1387, 15:17 عصر
شما باید کل کد ها رو بذارید ، این که چیزی رو مشخص نمیکنه

در vs2005 یک asp.net web site ایجاد نمودم و یک سری text box و combo box قراردادم و combo box ها را به جداول مورد نظر متصل نموده ام که اطلاعات آنهارا بیاورند.
حال در دکمه ورود این کدها را با c# وارد نموده ام ( البته در sqlserver یک stored procedure بنام insert ایجاد نمودم و پارامترها را به آن می فرستم)



Try
{
SqlCommand command1 = new SqlCommand();
string text1 = ""...............;
SqlConnection connectoin1 = new SqlConnection(text1);
command1.Parameters.Add(new SqlParameter("@name", TextBox1.Text));
command1.Parameters.Add(new SqlParameter("@reshte", comboBox1.SelectedValue));
command1.CommandText = "insert";
command1.CommandType = CommandType.StoredProcedure;
command1.Connection = connectoin1;
connectoin1.Open();
command1.ExecuteNonQuery();
connectoin1.Close();
Response.Redirect("ok.aspx");
}
Catch
{
Response.Redirect("error.aspx");
}


سوالاتی که دارم اینهاست

1-وقتی داریم یک وب سایت ایجاد می کنیم برای نوشتن کدهای دکمه ها از زبان c# استفاده می شود و یا اگر با زبانهای خاص دیگری این کار صورت گیرد در سرعت اجرا و امنیت و ... فرق ایجاد می شود.

2- استفاده از stored procedure در برنامه مناسبتر است یا اینکه باید روش دیگری استفاده گردد.

3- برای اینکه بعد از درج اطلاعات به صفحه دیگری که طراحی شده برای بیان موفقیت آمیز ثبت نام منتقل شویم در انتهای کدها چه کدی باید درج گردد. در این کدهای من ، رکورد مورد نظر در server ذخیره می شود اما صفحه error که طراحی نمودم و در آن نوشته ام در ثبت اطلاعات مشکل بوجود آمد ظاهر می گردد.


اما یک سوال :ا در صفحه ارور پیغام خطایی که مشاهده میکنید بعد از هر دو عملیات یکسان است ؟

صفحه error صفحه ای است که من خودم طراحی نمودم و همیشه به همان شکل ظاهر می گردد.

am_sanatiz
سه شنبه 31 اردیبهشت 1387, 20:46 عصر
سلا دوستان

تو این زمینه کسی مرا راهنمایی نمی کند

Alireza_Salehi
چهارشنبه 01 خرداد 1387, 07:58 صبح
1.تفاوتی نمی کند.
2.صددرصد بهتر است.
3.در این حالت همین ها کفایت میکنه.

یک بار خط به خط احرا کنید تا مشخص بشه چرا دستورات داخل catch اجرا می شوند.

am_sanatiz
پنج شنبه 02 خرداد 1387, 07:56 صبح
یک بار خط به خط احرا کنید تا مشخص بشه چرا دستورات داخل catch اجرا می شوند.


از راهنمایی های شما متشکرم.

برنامه را که خط به خط اجرا کردم از دستور

Response.Redirect("ok.aspx");

خطا گرفته می شد وبه قسمت catch می رفت . می شود مرا راهنمایی کنید چه باید کرد.
ویا اگر صفحه جدیدی هم باز نشود تنها یک msgbox ظاهر گردد.

Behrouz_Rad
پنج شنبه 02 خرداد 1387, 09:36 صبح
برادر من این یک باگه که 10 بار در همین سایت به اون پرداخته شده.
دلیلش هم اینه که Redirect، یک خطای داخلی از نوع Thread پرتاب می کنه که باعث میشه قسمت Cache اجرا بشه.
سیستم کاریت رو عوض کن.

موفق باشید.

raravaice
پنج شنبه 02 خرداد 1387, 09:57 صبح
حق با برادر راد هست.

اینو ببین به کارت میاد.راه حلش رو مفصل گفتم.

http://barnamenevis.org/forum/showthread.php?p=496070

موفق باشید

am_sanatiz
جمعه 03 خرداد 1387, 20:57 عصر
برادر من این یک باگه که 10 بار در همین سایت به اون پرداخته شده.
دلیلش هم اینه که Redirect، یک خطای داخلی از نوع Thread پرتاب می کنه که باعث میشه قسمت Cache اجرا بشه.
سیستم کاریت رو عوض کن.

موفق باشید.

متشکر از توجه شما اما ميشه راهنمايي کنيد چطور سيستم کاريم را عوض کنم چون من تنها راهي که الان در ذهن دارم اينه که وقتي کاربر رکورد خود را ذخيره کرد پيغامي مبني برانجام کار بگيرد و در صورت ناموفق بودن متوجه گردد.

Behrouz_Rad
جمعه 03 خرداد 1387, 21:59 عصر
مثلا می تونی یک Panel قرار بدی Grid رو در اون قرار بدی و بعد از انجام موفقیت آمیز عمل درج، اون رو مخفی کنی و Panel دیگه ای که در اون یک Label هست رو نمایش بدی.

موفق باشید.