第六章 用户权限管理(六) -- C#读写数据库Image字段

本文介绍了一个员工信息管理系统的实现细节,包括员工信息展示页面、大尺寸照片显示功能及员工信息编辑功能。系统采用ASP.NET技术栈,利用DataGrid进行数据展示,并通过多种控件实现了丰富的交互体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6.6 角色用户管理设计与实现

6.6.4 员工信息管理   

 

图6.20 员工信息管理页面
 

    如图6.20所示,员工信息管理页Employees.aspx程序较为复杂,主要使用了DataGrid控件。在控件中点击姓名,将弹出如图所示的员工信息表(EmployeeInfo.aspx)页面;点击员工照片(实际上是一个图片按钮ImageButton)将弹出显示大尺寸照片的页面DisplayImage.aspx;而且员工信息管理页下方的添加编辑控件既要负责添加员工信息,还要负责修改已有信息。当点击DataGrid控件的编辑按钮时,既要已原有信息填充页面下方的编辑控件,还要隐藏添加信息按钮,并显示保存修改按钮。

    下面逐一介绍各部分程序的代码:

    1、EmployeeInfo.aspx文件代码

    ......

    <form id="Form1" method="post" runat="server">
      <table height="200" cellSpacing="0" cellPadding="0" width="600"

           align="center" border="0">
       <tr align="center"><td>员工信息表</td></tr>
      </table>
      <%
        if(dr !=null)
        {
          if(dr.Read())
          {
      %>
      <table cellSpacing="0" cellPadding="6" width="500" align="center" border="1">
        <tr align="center">
          <td>员工姓名</td>
          <td><%=dr["EmployeeName"]%></td>
          <td>性别</td>
          <td><%=dr["sex_alias"]%></td>
          <td rowSpan="3">
            <%
               Image1.ImageUrl="DisplayImage.aspx?id="+dr["EmployeeID"];
            %>
            <asp:Image id="Image1" runat="server" Width="70px" Height="100px"></asp:Image>

          </td>
        </tr>
        <tr align="center">
          <td>所属部门</td>
          <td><%=dr["orgname"]%>&nbsp;</td>
          <td>出生日期</td>
          <td><%=dr["sbirthdate"]%></td>
       </tr>
       <tr align="center">
          <td>职务(职责)</td>
          <td><%=dr["Business"]%></td>
          <td><FONT face="宋体">家庭住址</FONT></td>
          <td><%=dr["Address"]%></td>
       </tr>
       <tr align="center">
          <td><FONT face="宋体">入职日期</FONT></td>
          <td><%=dr["shiredate"]%></td>
          <td><FONT face="宋体">家庭电话</FONT></td>
          <td colSpan="2"><%=dr["HomePhone"]%></td>
       </tr>
       <tr align="center">
          <td><FONT face="宋体">手机号码</FONT></td>
          <td colSpan="4"><%=dr["CellPhone"]%></td>
       </tr>
       <tr align="center">
          <td>员工简历</td>
          <td align="left" width="360" colSpan="4" style="RIGHT:50px;

               WORD-BREAK:break-all;WORD-WRAP:break-word"><%=dr["Notes"]%></td>
       </tr>
      </table>
      <%
              conn.Close();
           }
        }
        else
           Response.Write("该用户信息不存在!");
      %>
    </form> 

    EmployeeInfo.aspx.cs文件代码:

    ......

    using DataAccess;

    namespace workflow.admin
    {
      public class EmployeeInfo : System.Web.UI.Page
      {
        protected SqlDataReader dr=null;
        protected System.Web.UI.WebControls.Image Image1;
        protected SqlConnection conn=null;

        private void Page_Load(object sender, System.EventArgs e)
        {
           if(Request.QueryString["id"] !=null & Request.QueryString["id"].ToString() !="")
           {
              string id=Request.QueryString["id"].ToString();
              string strSql="select EmployeeID,GroupID,EmployeeName,Sex,Business,CellPhone,

                 HomePhone,Address,Notes,sex_alias=(case Sex when 'M' then '男' else '女'

                       end),orgname=(select Group_Name from organization where

                       Group_ID=GroupID),shiredate=CONVERT(varchar(10), HireDate, 120),

                      CONVERT(varchar(10), BirthDate, 120)  as sbirthdate from Employees

                       where EmployeeID="+id;
              Base basecode=new Base();
              dr=basecode.SQLExeDataReader(strSql);
              conn=basecode.AppCon;
           }
       

     
    }

    2、DisplayImage.aspx.cs文件代码

    DisplayImage.aspx只有.Net自动生成的代码,照片的显示由DisplayImage.aspx.cs文件代码完成:

    ......

    using DataAccess;

    namespace workflow.admin
    {
      public class DisplayImage : System.Web.UI.Page
     
        private void Page_Load(object sender, System.EventArgs e)
        {
          if(! IsPostBack)
          {
            //验证用户是否登录
            if(Session["userid"] == null)
                Response.Redirect("./Message.aspx");
          }
          string employeeID=Request.QueryString["id"];
          string strSql="select Photo,PhotoImageType from Employees where

               EmployeeID="+employeeID;
          Base basecode=new Base();
          SqlDataReader dr=basecode.SQLExeDataReader(strSql);
          dr.Read();
          if((string)dr["PhotoImageType"] !="")
          {
             Response.ContentType=(string)dr["PhotoImageType"];
             Response.BinaryWrite((byte[])dr["Photo"]);
          }
          else
             Response.Write("暂无照片");
          basecode.AppCon.Close();

        }

      

   

    3、Employees.aspx文件代码

图6.21 在属性生成器中设置控件列

 

图6.22 编辑照片模板列

    ......

    <form id="Form1" method="post" runat="server">

      <table cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
        <tr><td style="FONT-SIZE: 16px" align="center">员工管理数据表</td></tr>
        <tr height="50"><td align="right"><span id="Message" style="FONT-SIZE: 11pt;

          FONT-FAMILY: Arial" runat="server" MaintainState="false"></span>&nbsp;</td>
        </tr>
        <tr><td>

          <asp:datagrid id="DataGrid1" runat="server" AllowPaging="True"

              DataKeyField="EmployeeID" Width="100%" HeaderStyle-HorizontalAlign="Center"

                  PageSize="8">
            <ItemStyle Font-Size="13px" HorizontalAlign="Center" Height="28px"

                  VerticalAlign="Bottom"></ItemStyle>
            <HeaderStyle Font-Size="16px" HorizontalAlign="Center" Height="30px"

                  VerticalAlign="Middle" BackColor="#EEEEEE"></HeaderStyle>
            <Columns>
               <asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="EmployeeID"

                     DataNavigateUrlFormatString="EmployeeInfo.aspx?id={0}"

                        DataTextField="EmployeeName" HeaderText="员工姓名">

               </asp:HyperLinkColumn><!-- 如图6.21所示 -->
               <asp:BoundColumn DataField="orgname" ReadOnly="True" HeaderText="部门名称">

               </asp:BoundColumn>
               <asp:BoundColumn DataField="Business" HeaderText="职务"></asp:BoundColumn>
               <asp:BoundColumn DataField="shiredate" HeaderText="入职时间"></asp:BoundColumn>
               <asp:BoundColumn DataField="CellPhone" HeaderText="电话号码"></asp:BoundColumn>
               <asp:TemplateColumn HeaderText="照片"><!-- 如图6.22所示 --> 
                 <ItemTemplate><!-- 借用了UpdateCommand事件处理函数 -->
                  <asp:ImageButton id=ImageButton1 runat="server" Width="30px"

                    CommandName="Update" Height="40px" ImageUrl='<%# FormatURL((DataBinder

                           .eval_r(Container.DataItem, "EmployeeID")).ToString()) %>'>

                       <!-- 利用后台代码的FormatURL函数处理容器列 -->
                  </asp:ImageButton>
                 </ItemTemplate>
               </asp:TemplateColumn>
               <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="" CancelText=""

                     EditText="编辑"><!-- 对应EditCommand事件处理函数 -->

               </asp:EditCommandColumn>
               <asp:TemplateColumn>
                 <ItemTemplate>
                   <asp:LinkButton id="LinkButton1" runat="server" CommandName="Delete">删除

                   </asp:LinkButton><!-- 借用了DeleteCommand事件处理函数 -->
                 </ItemTemplate>
               </asp:TemplateColumn>
            </Columns>
            <PagerStyle Font-Size="9pt" HorizontalAlign="Right" ForeColor="#3366FF"

                Mode="NumericPages"></PagerStyle><!-- 对应PageIndexChanged事件处理函数 -->
          </asp:datagrid>

        </td></tr>
      </table>
      <table cellSpacing="0" cellPadding="0" width="100%" border="0">
        <tr height="25">
             <TD  vAlign="bottom">添加(编辑)员工信息</TD>
             ......

        </TR>
      </TABLE>
      ......
      <table cellSpacing="2" cellPadding="2" width="100%" align="right" border="0">
        <tr>
         <td align="right" width="10%">员工姓名:</td>
         <td width="30%"><asp:textbox id="TextBox1" runat="server"></asp:textbox>

             <asp:label id="Label1" runat="server" ForeColor="Red"></asp:label>

             <asp:textbox id="TextBox9" runat="server" Visible="False"></asp:textbox>

         </td><!-- 隐藏文本框TextBox9用于保存员工编号(编号不可修改,保存修改信息时使用) -->
         <td align="right" width="10%">所属部门:</td>
         <td width="50%">

             <asp:dropdownlist id="DropDownList1" runat="server" DataValueField="Group_ID"

                   DataTextField="Group_Name">

             </asp:dropdownlist>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;性别:
             <asp:radiobutton id="RadioButton1" runat="server" GroupName="Sex" Checked="True"

                  Text="男"></asp:radiobutton>

             <asp:radiobutton id="RadioButton2" runat="server" GroupName="Sex"

                  Text="女"></asp:radiobutton>

         </td>
        </tr>
        <tr>
          <td align="right">职务(职责):</td>
          <td><asp:textbox id="TextBox2" runat="server"></asp:textbox></td>
          <td align="right"><FONT face="宋体">出生日期:</FONT></td>
          <td><asp:textbox id="TextBox3" runat="server"></asp:textbox><asp:label id="Label2"

               runat="server" ForeColor="Red"></asp:label></td>
        </tr>
        <tr>
          <td align="right"><FONT face="宋体">入职日期:</FONT></td>
          <td><asp:textbox id="TextBox4" runat="server"></asp:textbox><asp:label id="Label3"

               runat="server" ForeColor="Red"></asp:label></td>
          <td align="right">&nbsp;<FONT face="宋体">家庭住址:</FONT></td>
          <td><asp:textbox id="TextBox5" runat="server" Columns="60"></asp:textbox></td>
        </tr>
        <TR>
          <TD align="right"><FONT face="宋体">家庭电话:</FONT></TD>
          <TD><asp:textbox id="TextBox6" runat="server"></asp:textbox></TD>
          <TD align="right"><FONT face="宋体">手机号码:</FONT></TD>
          <TD><asp:textbox id="TextBox7" runat="server"></asp:textbox></TD>
        </TR>
        <TR>
          <TD align="right"><FONT face="宋体">上传照片:</FONT></TD>
          <TD><INPUT id="PersonImage" type="file" name="PersonImage" runat="server"></TD>
          <TD align="right"><FONT face="宋体">员工简历:</FONT></TD>
          <TD><asp:textbox id="TextBox8" runat="server" Columns="100" Rows="6"

                TextMode="MultiLine"></asp:textbox></TD>
        </TR>
        <tr>
          <td align="right">&nbsp;</td>
          <td>&nbsp;</td><td>&nbsp;</td>
          <td>&nbsp;
             <asp:button id="Button1" runat="server" Text="添加员工"></asp:button>

             <asp:button id="Button2" runat="server" Text="修改员工信息"></asp:button>
             <asp:Button id="Button3" runat="server" Text="取消修改"></asp:Button>

             <span id="EditMessage" style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"

                   runat="server" MaintainState="false"></span></td>
        </tr>
       </table>
       ......

     </form> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值