频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

26.7.3 管理员管理实现过程

作者: 明日科技编著 出处:人民邮电出版社  2008-05-20 15:59    砖    好    评论   进入论坛
阅读提示:《C#数据库系统开发完全手册》第26章主要讲述的是博客网站,本节为您介绍的是管理员管理实现过程。

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  新添加的管理员

在管理员注册页面Register.aspx中,当填写完注册信息后,单击【确定】按钮,完成向数据库中插入数据的功能。
插入数据时,程序会检索数据表tb_Admin中UserName字段,如果用户名在数据库中已经存在,程序会弹出“对不起,该用户已经注册!”的消息提示,并返回原始页面。代码如下:

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();
}

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
Sun以10亿美元并购开源数据库厂商MySQL
Oracle数据库开发之PL/SQL基础应用
C#实用基础教程
Oracle数据库开发基础教程
2006年数据库频道热点关注
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
2008年上半年全国软考最新试题、答案及点评
2008年上半年全国软考最新试..
勇闯IT培训黑色围城
勇闯IT培训黑色围城
IPv6协议--拓展网络无限空间
IPv6协议--拓展网络无限空间
· IPv6协议--拓展网络无..
· 了解统一威胁管理(UTM)..
· 调查:十大发现 解秘技..
· 技术人求职简历完备手册
· Vista SP1对决XP SP3
· 运营商封堵ADSL共享 中..
· LAMP技术精解
· PHP开发应用手册
· 解析35岁技术人的价值..
· 汶川大地震 IT技术人在..
· SOA 面向服务架构
· 龙芯要做中国的“奔腾”
· 微软出价446亿美元收购..
· 网管员如何踏上高薪之路
· 主流品牌防火墙配置
· 访问控制列表(ACL)介绍
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· RAID——磁盘阵列基础
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· ADSL应用面面俱到
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· RAID——磁盘阵列基础
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· ADSL应用面面俱到
· ADSL应用面面俱到
· 反垃圾邮件技术应用