Page_Unload事件在页面载入的时候就执行了,为什么?我的代码如下,在载入页面以后,我打开数据库一看,status字段居然是离线,不可思议。protected void Page_Unload(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("server=localhost;database=hex;uid=sa;pwd=");
SqlCommand sqlcmd = new SqlCommand();
conn.Open();
sqlcmd.Connection = conn;
sqlcmd.CommandText = "update messages set status='离线' where sid=" + id;
sqlcmd.ExecuteNonQuery();
conn.Close();
conn = null;
}
{
SqlConnection conn = new SqlConnection("server=localhost;database=hex;uid=sa;pwd=");
SqlCommand sqlcmd = new SqlCommand();
conn.Open();
sqlcmd.Connection = conn;
sqlcmd.CommandText = "update messages set status='离线' where sid=" + id;
sqlcmd.ExecuteNonQuery();
conn.Close();
conn = null;
}
解决方案 »
- 调用存储过程没结果
- fpspread 控件选择问题
- 我能这么理解吗 linq或者那个ado.net实体框架 就是jsp里的hibernate?
- 显示数据时候label和数据控件的选择问题求教
- 关于checkbox 的CheckedChanged不能更新的问题
- AJAX 是什么? 一般在asp.net中用吗???和 XMLHTTP 都一个意思吧
- 求.net socket 发送字符串的方法,谢谢!
- 怎么删除DataView表中所有重复的记录?
- 为什么我做的apsx的东西都要建虚拟目录才可以用?
- VS.net的beta1是不是很不稳定呀?beta2怎么样?
- ★有ibatisnet开发经验的请进★
- 自定义ASP.NET AJAX SERVER CONTROL控件(VS2008)
比如说,载入前就是离线,或者看错id对应的人了
你把此id改成在线,再跑一下...
如果想在postback时执行上面代码
加上
if (this.IsPostBack)
{
SqlConnection conn = new SqlConnection("server=localhost;database=hex;uid=sa;pwd=");
SqlCommand sqlcmd = new SqlCommand();
conn.Open();
sqlcmd.Connection = conn;
sqlcmd.CommandText = "update messages set status='离线' where sid=" + id;
sqlcmd.ExecuteNonQuery();
conn.Close();
conn = null;}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection conn = new SqlConnection("server=localhost;database=hex;uid=sa;pwd=");
SqlCommand sqlcmd = new SqlCommand();
SqlDataReader datareader;
string today = "";
string firstsay = "客服:<br> 你好。";
string status = "在线";
try
{
conn.Open();
sqlcmd.Connection = conn;
today = System.DateTime.Now.ToString();
sqlcmd.CommandText = string.Format("insert into messages (msgs,stime,status) values('{0}','{1}','{2}')",firstsay,today,status);
sqlcmd.ExecuteNonQuery();
sqlcmd.CommandText = string.Format("select sid from messages where stime='{0}'", today);
datareader = sqlcmd.ExecuteReader();
if (datareader.Read())
id = datareader.GetInt32(0);
sqlcmd = null;
}
catch (Exception ex)
{
Response.Write(ex);
}
finally
{
conn.Close();
conn = null;
}
}
}
如果是Page_Load就像这位仁兄这样加个if(this.IsPostBack)Page_Unload 这个事件,在2005有吗?小弟见识短没见过
你需要在关闭窗口时将数据库更改数据状态为离线,因为关闭窗口不会执行 Page_Load