件中实现。其主要代码如下:
void Application_Start(object sender, EventArgs e) {// 在应用程序启动时运行的代码 Application[\] = 0; }
void Session_Start(object sender, EventArgs e) {// 在新会话启动时运行的代码 Application.Lock();
Application[\] = (int)Application[\] + 1; Application.UnLock(); }
void Session_End(object sender, EventArgs e) {// 在会话结束时运行的代码。 Application.Lock();
Application[\] = (int)Application[\] - 1; Application.UnLock();
}
4.2 登录页面(login.aspx)
4.2.1功能简介
每个用户要进入系统前都必须先登录,如果用户是老用户只需输入正确用户名和密码后点击登录按钮后即可登录,如果用户是新用户可以点击带连接的按钮注册用户,注册完后即可输入用户名和密码后登陆进系统。登录页面如图4.2.1所示
图4.2.1 登录页面图
4.2.2 前台主要代码
- 11 -
Width=\注册用户>>
4.2.3 后台主要代码
当用户在文本框textuser和textpwd中输入用户名和密码时查询数据库中usertable这张表中的login和password列,当文本框中输入的值同时能和数据库中login和 password列匹配的值时登录成功,否则登录失败。
string userName = textuser.Text;
string userPwd = textpwd.Text;
SqlConnection con = conn.createconnection(); con.Open();
SqlCommand cmd = new SqlCommand(\ + userName + \ + userPwd + \, con);
SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = cmd; DataSet dataset = new DataSet(); adapter.Fill(dataset);
if (dataset.Tables[0].Rows.Count > 0) {
Response.Redirect(\); } else {
Response.Write(\用户或密码不正确\\\); }
con.Close();
4.3 注册页面(register.aspx)
4.3.1功能简介
当有新用户需要进入系统时,必须先跳转到此页面来进行新用户的注册,在注册中真
- 12 -
实姓名,登陆名和密码三项不能为空,当用户选择了某个系时,班级项会自动与系对应显示出来。登录名不能重复,当用户输入一个登录名时页面会自动提交到服务器去验证登陆名是否已存在使用了“TextChanged”事件。注册页面如图4.3.1所示
图4.3.1注册页面 4.3.2 后台主要代码
Page_Load()和ddlxb_SelectedIndexChanged()事件主要实现系别与班级的联动既选择了某个系则将该系所有的班级显示出来。(其它系的班级不会显示出来)
protected void Page_Load(object sender, EventArgs e) {
if (!this.IsPostBack) {
SqlConnection con = conn.createconnection(); con.Open();
SqlCommand cmd = new SqlCommand(\, con); SqlDataReader sdr = cmd.ExecuteReader(); ddlxb.DataSource = sdr; ddlxb.DataTextField = \; ddlxb.DataValueField = \; ddlxb.DataBind(); sdr.Close();
SqlCommand cmdbj = new SqlCommand(\ + ddlxb.SelectedValue, con);
sdr = cmdbj.ExecuteReader(); ddlbj.DataSource = sdr; ddlbj.DataTextField = \;
ddlbj.DataValueField = \; ddlbj.DataBind(); sdr.Close(); con.Close(); } }
- 13 -
protected void ddlxb_SelectedIndexChanged(object sender, EventArgs e) {
string proid = ddlxb.SelectedValue;
SqlConnection con = conn.createconnection(); con.Open();
SqlCommand cmd = new SqlCommand(\ + proid, con); SqlDataReader sdr = cmd.ExecuteReader(); ddlbj.DataSource = sdr; ddlbj.DataTextField = \;
ddlbj.DataValueField = \; ddlbj.DataBind(); sdr.Close(); con.Close();
}
下面代码主要实现当用户点击页面的注册按钮时将用户填写的资料写入数据库中。
protected void Butzc_Click(object sender, EventArgs e)
{ string dd = (ddlxb.SelectedItem).ToString();//获取ddlxb下拉列表中的值 string cc = (ddlbj.SelectedItem).ToString(); SqlConnection con = conn.createconnection(); con.Open();
SqlCommand comd = new SqlCommand(\, con); comd.ExecuteNonQuery();
if (textpwd1.Text == \ && textpwd2.Text == \) {
Labpd.Text = \密码不能为空...\; textpwd1.Focus(); }
else if (textpwd1.Text == textpwd2.Text && textpwd1.Text != \ && textpwd2.Text != \) {
SqlCommand cm = new SqlCommand(\
usertable(login,password,name,sex,rxtime,xb,bj,sj,qq,email,gzdw) values('\ +
textuser1.Text + \ + textpwd1.Text + \ + textname.Text + \ + ddlsex.Text + \ + ddltime.Text + \ + dd + \ + cc + \ + textsj.Text + \ + textqq.Text + \ + textemail.Text + \ + textgzdw.Text + \, con); cm.ExecuteNonQuery(); con.Close();
Response.Write(\注册成功~!
');window.location.href='login.aspx'\); }else
{ Labpd.Text = \密码不一致...\; textpwd1.Focus(); }}
下面代码主要实现自动查询数据库判断用户是否已存在,这里首先要将文本框的outopostback属性设置为true。
- 14 -