26.7.3 管理员管理实现过程
数据表:tb_Admin 技术:根据条件向数据库中插入数据
管理员管理页面主要实现的功能是对管理员实现添加、修改、查询操作,只有当用户为超级管理员时才能对用户进行删除操作,下面分别进行介绍。
1.添加系统管理员
系统管理员登录后,直接进入管理员管理页面,该页面用到的主要控件如表26.17所示。
表26.17 管理员管理页面主要控件列表
|
控 件 类 型 |
控 件 名 称 |
数 量 |
用 途 |
|
HTML |
Table |
3 |
布局页面 |
|
标准 |
Button |
2 |
查找 |
|
标准 |
GridView |
1 |
显示数据 |
|
标准 |
DropDownList |
1 |
选择查询条件 |
|
标准 |
LinkButton |
1 |
实现页面跳转 |
|
用户控件 |
WebUserControl |
3 |
布局页面 |
|
标准 |
TextBox |
2 |
输入查询条件 |
单击【添加管理员】按钮,跳转到Register.aspx页面,该页面中控件列表如表26.18所示,用户填写完正确信息后,如图26.18所示,单击【确定】按钮,即可将相关数据添加到数据库中,并返回到管理员管理页面,在列表中即可看见新添加管理员的部分信息,如图26.19所示。
表26.18 添加管理员页面控件列表
|
控 件 类 型 |
控 件 名 称 |
数 量 |
用 途 |
|
HTML |
Table |
2 |
布局页面 |
|
标准 |
Button |
3 |
检测用户/确定/取消 |
|
标准 |
DropDownList |
1 |
选择条件 |
|
用户控件 |
WebUserControl |
2 |
布局页面 |
|
标准 |
TextBox |
15 |
输入注册数据 |
|
标准 |
RequiredFieldValidator |
3 |
验证输入条件 |
|
标准 |
CompareValidator |
1 |
验证两个文本框中内容是否相同 |
|
| 图26.18 管理员注册页面 |
|
| 图26.19 新添加的管理员 |
protected void btnOK_Click(object sender, EventArgs e)
{
SqlData da = new SqlData();
SqlDataReader read = da.ExceRead("select * from tb_Admin where UserName='" + this.txtName.Text + "'");
read.Read();
if (read.HasRows)
{
if (this.txtName.Text = = read["UserName"].ToString())
{
Response.Write("<script language=javascript>alert('对不起,该用户已经注册!');location=
'Register.aspx'</script>");
return;
}
}
read.Close();
string P_str_Com = "insert into tb_Admin(UserName,PassWord,Question,Answer,ReallyName,Birthday,
Address"
+ ",PostCode,Email,HomePhone,MobilePhone,QQ,ICQ,RegTime,Sex,SuperAdmin,IP) values('" + this.txtName.Text + "'"
+ ",'" + this.txtPwd.Text + "','" + this.txtQues.Text + "','" + this.txtAns.Text + "','" + this.txtRealName.
Text + "'"
+ ",'" + this.txtBirthday.Text + "','" + this.txtAddress.Text + "','" + this.txtPostCode.Text + "','" + this.txtEmail.Text + "'"
+ ",'" + this.txtHphone.Text + "','" + this.txtMphone.Text + "','" + this.txtQQ.Text + "','" + this.txtICQ.
Text + "','" + DateTime.Now.ToString() + "','" + this.DropDownList1.SelectedValue + "','"+this.DropDownList2.
SelectedValue+"','"+Request.UserHostAddress+"')";
bool add = da.ExceSQL(P_str_Com);
if (add = = true)
{
Response.Write("<script language=javascript>alert('注册成功!');location='AdminManage.aspx'
</script>");
}
else
{
Response.Write("<script language=javascript>alert('注册失败!');location='javascript:history.go
(-1)'</script>");
}
}
在管理员管理页面中,单击控件中的“详细信息”栏,即可跳转到AdminInfo.aspx页面中,并将选定行人员的详细信息显示在相应的文本框中,如图26.20所示,管理员用户可在此页面中对其信息进行修改,确认修改后,单击【修改】按钮,即可对当前人员的信息进行修改,并返回至管理员页面,若单击【返回】按钮,可直接返回到管理员管理页面,不进行任何操作。
管理员信息页面的控件列表如表26.19所示。
表26.19 管理员信息页面控件
|
控 件 类 型 |
控 件 名 称 |
数 量 |
用 途 |
|
HTML |
Table |
2 |
布局页面 |
|
标准 |
Button |
2 |
确定/取消 |
|
标准 |
DropDownList |
1 |
选择条件 |
|
用户控件 |
WebUserControl |
2 |
布局页面 |
|
标准 |
TextBox |
16 |
显示管理员信息 |
|
标准 |
Label |
1 |
提示信息 |
|
| 图26.20 管理员详细信息资料 |
管理员详细资料页面AdminInfo.aspx的主要功能是在该页的后台Page_Load事件中完成的。在初始化页面时,获取AdminManage.aspx页面传递的值,然后通过SQL语句将相关的信息检索出来并显示在对应的文本框中,代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserName"] = = null)
{
Response.Redirect("../../Index.aspx");
}
if (!IsPostBack)
{
try
{
SqlConnection mycon = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
mycon.Open();
DataSet mydataset = new DataSet();
SqlDataAdapter mydataadapter = new SqlDataAdapter("select * from tb_Admin where
id=" + Request["id"],mycon);
mydataadapter.Fill(mydataset, "tb_Admin");
DataRowView rowview = mydataset.Tables["tb_Admin"].DefaultView[0];
this.txtName.Text = Convert.ToString(rowview["UserName"]);
this.txtPwd.Text = Convert.ToString(rowview["PassWord"]);
this.ddlSex.SelectedValue = Convert.ToString(rowview["Sex"]);
this.txtRealName.Text = Convert.ToString(rowview["ReallyName"]);
this.txtBirthday.Text = Convert.ToString(rowview["Birthday"]);
this.txtAddress.Text = Convert.ToString(rowview["Address"]);
this.txtPostCode.Text = Convert.ToString(rowview["PostCode"]);
this.txtQues.Text = Convert.ToString(rowview["Question"]);
this.txtAns.Text = Convert.ToString(rowview["Answer"]);
this.txtEmail.Text = Convert.ToString(rowview["Email"]);
this.txtHphone.Text = Convert.ToString(rowview["HomePhone"]);
this.txtMphone.Text = Convert.ToString(rowview["MobilePhone"]);
this.txtQQ.Text = Convert.ToString(rowview["QQ"]);
this.txtICQ.Text = Convert.ToString(rowview["ICQ"]);
this.TextBox1.Text = Convert.ToString(rowview["RegTime"]);
this.DropDownList1.SelectedValue = Convert.ToString(rowview["SuperAdmin"]);
this.txtIP.Text = Convert.ToString(rowview["IP"]);
mycon.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
此页中还包含一个【修改】按钮,用于对当前数据的修改。当单击【修改】按钮时,系统会执行将数据库中相应字段更新的SQL语句,从而实现修改功能。代码如下:
protected void btnUpdate_Click(object sender, EventArgs e)
{
try
{
SqlData da = new SqlData();
string P_str_Com = "update tb_Admin set UserName='" + this.txtName.Text + "',PassWord='" + this.txtOKpwd.Text + "'"
+ ",Sex='" + this.ddlSex.SelectedValue + "',ReallyName='" + this.txtRealName.Text + "'"
+ ",Birthday='" + this.txtBirthday.Text + "',Email='" + this.txtEmail.Text + "',HomePhone='" + this.txtHphone.Text + "'"
+ ",MobilePhone='" + this.txtMphone.Text + "',PostCode='" + this.txtPostCode.Text + "',QQ='" + this.txtQQ.Text + "'"
+ ",ICQ='" + this.txtICQ.Text + "',Address='" + this.txtAddress.Text + "',Answer='" + this.txtAns.
Text + "',Question='" + this.txtQues.Text + "',SuperAdmin='" + this.DropDownList1.SelectedValue + "'"
+ " where ID='" + Request["ID"] + "'";
bool add = da.ExceSQL(P_str_Com);
if (add = = true)
{
Response.Write("<script language=javascript>alert('修改信息成功!');location='AdminManage.
aspx'</script>");
}
else
{
Response.Write("<script language=javascript>alert('修改信息失败!');location='javascript:
history.go(-1)'</script>");
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
2.删除系统管理员
删除功能是GridVeiw控件中自带的功能,只需要设计时在控件的编辑列中添加CommandFild中的【删除】项,并将其移动到字段中合适位置,然后在GridView控件的RowDeleting事件中,编写功能代码即可实现删除功能,其主要功能代码如下:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
if ("是" = = Session["SuperAdmin"].ToString())
{
SqlData da = new SqlData();
da.ExceSQL("delete from tb_Admin where ID='" + gvAdmin.DataKeys[e.RowIndex].Value + "'");
Page.Response.Redirect("AdminManage.aspx");
}
else
{
Response.Write("<script language=javascript>alert('非超级管理员不能进行删除操作!')</script>");
}
}
在执行删除操作时,首先会判断登录用户是否为超级管理员,只有超级管理员才可以删除其他用户。
3.查找系统管理员
查询管理员是按查询条件对指定的关键字进行模糊搜索。该页面主要包括两部分:一部分是查询条件选择输入区,另一部分是查询成绩显示区。设计结果如图26.21所示。
|
| 图26.21 管理员查询 |
此处,管理员可以选择查询条件,然后输入查询关键字,查询相关管理员的基本信息,单击“详细信息”,可浏览其具体信息,实现查询功能的后台代码如下:
protected void btnSearch_Click(object sender, EventArgs e)
{
SqlData da = new SqlData();
string search=this.ddlSearch.SelectedValue;
switch (search)
{
case "管理员ID":
da.BindData(this.gvAdmin, "Select * From tb_Admin Where ID Like '%" + this.txtKey.
Text + "%'");
break;
case "管理员姓名":
da.BindData(this.gvAdmin, "Select * From tb_Admin Where UserName Like '%" + this.
txtKey.Text + "%'");
break;
case "QQ":
da.BindData(this.gvAdmin, "Select * From tb_Admin Where QQ Like '%" + this.txtKey.
Text + "%'");
break;
default:
Response.Write("<script lanuage=javascript>alert('出错拉!');location='javascript:history.
go(-1)'</script>");
break;
}
}
GridView控件提供了自动分页功能,用户可根据需要设置控件中显示信息的条数,实现分页功能,必须将GridView控件与PageIndexChangeing事件绑定,该事件的后台功能代码如下:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvAdmin.PageIndex = e.NewPageIndex;
gvAdmin.DataBind();
}
| 回书目 上一节 下一节 |
|
· 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. · 系统分析师自测获奖名.. |
· Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. · 网络工程师模拟测试获.. |
|
||||
| · IPv6协议--拓展网络无.. · 了解统一威胁管理(UTM).. · 调查:十大发现 解秘技.. · 技术人求职简历完备手册 · Vista SP1对决XP SP3 · 运营商封堵ADSL共享 中.. · LAMP技术精解 · PHP开发应用手册 |
· 解析35岁技术人的价值.. · 汶川大地震 IT技术人在.. · SOA 面向服务架构 · 龙芯要做中国的“奔腾” · 微软出价446亿美元收购.. · 网管员如何踏上高薪之路 · 主流品牌防火墙配置 · 访问控制列表(ACL)介绍 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 |
· Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · ADSL应用面面俱到 |
|||
|
||||
| · iSCSI应用与发展 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 · Apache技术专题 |
· RAID——磁盘阵列基础 · 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 |
|||