PDA

View Full Version : مشكل من با global.asax



poya121
دوشنبه 08 خرداد 1391, 23:18 عصر
سلام خدمت دوستان
من ميخوام وقتي كاربر دكمه خروج رو نزد يعني پيچ رو بست يه اپديت تو ديتابيس انجام بده كه دوستان گفتن بايد در global انجام بشه حالا من اين كارو كردم ولي اپديت كه ميكنم كل يك ستون رو اپديت ميكنه و وقتي شرط ميزارم كار انجام نميشه اينم كد برنامه:

void Application_End(object sender, EventArgs e)
{
DBAccess temp1 = new DBAccess();
temp1.com.CommandText = "UPDATE Std SET login = @login WHERE (stdid = @stdid) ";
temp1.com.Parameters.AddWithValue("stdid", Session["s2"]);
temp1.com.Parameters.AddWithValue("login", 0);
temp1.com.ExecuteNonQuery();
حالا ميخواستم ببينم كه ايراد از كجاست،اصلا سشن اينجا كار ميكنه يا نه اگه كار ميكنه چرا where جواب نميده...

silverfox
دوشنبه 08 خرداد 1391, 23:56 عصر
تو application_end خوب ننویس تو session_end بنویس شاید به خاطر اینه که مقدار session میگی درست نیست

poya121
سه شنبه 09 خرداد 1391, 00:03 صبح
براي اين تو app_end مينويسم كه اگه كاربر دكمه خروج را نزد اين كد كار كنه من تو session_end كاربرد نداره...
اگه ميتونيد كمك كنيد...

silverfox
سه شنبه 09 خرداد 1391, 00:39 صبح
application_end وقتی اجرا می شه که مثلا server ریستارت بشه یا یه همچین چیزایی کلا به iis ربط داره به کاربر ربط نداره یعنی با رفتن کاربر اون اجرا نمی شه session_end هم کاربر اگه خروج رو بزنه همون موقع اجرا می شه اگر نزنه و بره وقتی زمان session مثلا 20 دقیقه گذشت اجرا می شه یعنی اون موقع sessionش End میشه

poya121
سه شنبه 09 خرداد 1391, 01:01 صبح
ممنون از كمكتون.
اصل ماجرا اينه كه من براي لاگين خودم كد نوشتم و حالا ميخوام يه كاري بكنم كه 2نفر با يك يوزر و پس همزمان وارد يك پروفايل نشن...
چي كنم؟
اينم كدي كه براي لاگين نوشتم:
DBAccess temp = new DBAccess();
temp.com.CommandText = "select * from ostad where code_ostad=@p1 and password=@p2 ";
temp.com.Parameters.AddWithValue("p1", TextBox1.Text);
temp.com.Parameters.AddWithValue("p2", TextBox2.Text);
SqlDataReader data;
data = temp.com.ExecuteReader();
if (data.Read())
{

Session["s1"] = TextBox1.Text;
Response.Redirect("ostad.aspx");
}