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

本文详细介绍了员工信息管理系统的开发设计与实现过程,包括角色用户管理、员工信息添加、编辑、删除等功能,以及数据库操作、页面交互和数据展示等方面的技术实现。

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

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

6.6.4 员工信息管理

Employees.aspx.cs文件代码:

图6.23 DataGrid事件处理函数

 

    using System.IO;
    using System.Configuration;
    using System.Text.RegularExpressions;
    using DataAccess;

    ......

    namespace workflow.admin
    {
       public class EmployeesManagement : System.Web.UI.Page
       {
          protected System.Web.UI.WebControls.DataGrid DataGrid1;
          protected System.Web.UI.WebControls.TextBox TextBox1;
          protected System.Web.UI.WebControls.Label Label1;
          protected System.Web.UI.WebControls.Button Button1;
          protected System.Web.UI.WebControls.TextBox TextBox2;
          protected System.Web.UI.WebControls.TextBox TextBox3;
          protected System.Web.UI.WebControls.TextBox TextBox4;
          protected System.Web.UI.WebControls.TextBox TextBox5;
          protected System.Web.UI.WebControls.TextBox TextBox6;
          protected System.Web.UI.WebControls.TextBox TextBox7;
          protected System.Web.UI.HtmlControls.HtmlInputFile PersonImage;
          protected System.Web.UI.WebControls.TextBox TextBox8;
          protected System.Web.UI.WebControls.DropDownList DropDownList1;
          protected System.Web.UI.HtmlControls.HtmlGenericControl Message;
          protected System.Web.UI.WebControls.RadioButton RadioButton1;
          protected System.Web.UI.WebControls.RadioButton RadioButton2;
          protected System.Web.UI.WebControls.Label Label2;
          protected System.Web.UI.WebControls.Label Label3;
          protected System.Web.UI.WebControls.Button Button2;
          protected System.Web.UI.WebControls.TextBox TextBox9;
          protected System.Web.UI.WebControls.Button Button3;
          protected System.Web.UI.HtmlControls.HtmlGenericControl EditMessage;  
          private void Page_Load(object sender, System.EventArgs e)
          {
            if(! IsPostBack)
            {
              //验证用户是否登录
              if(Session["userid"] == null)
                  Response.Redirect("./Message.aspx");

              ViewState["datagridsource"]="";
              ViewState["listsource"]="";
              string strSql="select Group_Name,Group_ID from organization";
              DataSet ds=new Base().SQLExeDataSet(strSql);    
              if(ds !=null)
              {
                DataRow myDataRow=ds.Tables[0].NewRow();
                ds.Tables[0].Rows.InsertAt(myDataRow,0);
                ViewState["listsource"]=ds;
              }
              BindOrganizationList();
              BindGrid();
            }
            primarystatus();//置空编辑控件
         }

         void primarystatus()
         {
            Message.InnerHtml="";
            EditMessage.InnerText="";
            Label1.Text="";
            Label2.Text="";
            Label3.Text="";
            Button1.Visible=true;
            Button2.Visible=false;
            Button3.Visible=false;

         }

         //设置DataGrid图片按钮的url地址

         protected string FormatURL(string arg)
         {
            return "DisplayImage.aspx?id="+arg;
         }

         void BindGrid()
         {
            string strSql="select EmployeeID,GroupID,EmployeeName,Sex,Business,

                CellPhone,HomePhone,Address,Notes,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 order by GroupID asc";
            DataSet ds=new Base().SQLExeDataSet(strSql);
            if(ds !=null)
            {
               DataGrid1.DataSource=ds;
               DataGrid1.DataBind();
               ViewState["datagridsource"]=ds;
            }
         }

         void BindOrganizationList()
         {
            if(ViewState["listsource"].ToString() !="")

            {
                DropDownList1.DataSource=(DataSet)ViewState["listsource"];
                DropDownList1.DataBind();

            }
         }

         //添加按钮
         private void Button1_Click(object sender, System.EventArgs e)
         {
            if(TextBox1.Text.Trim()=="")
            {
               Label1.Text="姓名不能为空";
               return;
            }

            string strSql="INSERT INTO Employees(EmployeeName, Business, GroupID, BirthDate,

                 HireDate, Address, HomePhone,CellPhone, Photo, PhotoImageType, Notes,Sex) "
                  +" values(@EmployeeName,@Business,@GroupID,@BirthDate,@HireDate,@Address,

                     @HomePhone,@CellPhone,@Photo,@PhotoImageType,@Notes,@Sex)";
            SqlCommand mycommand=new SqlCommand(strSql);   
            //设置SQL参数
            setprocargument(mycommand);

            Base basecode=new Base();
            if(basecode.SQLExeNonQuery_proc(mycommand))
            {
               BindGrid();

               //重置添加(编辑)信息控件为空
               TextBox1.Text="";
               TextBox2.Text="";
               TextBox3.Text="";
               TextBox4.Text="";
               TextBox5.Text="";
               TextBox6.Text="";
               TextBox7.Text="";
               TextBox8.Text="";
            }
            else
            {
                EditMessage.InnerHtml="Insert Failed. Error Details are: "

                       + basecode.BaseSqlErrDes;
                EditMessage.Style["color"]="red";
              
         }

         //为删除按钮设置客户端提示
         private void Datagrid_ItemDataBound(object sender,

                    System.Web.UI.WebControls.DataGridItemEventArgs e)
         {
             if(e.Item.ItemType == ListItemType.Item ||e.Item.ItemType

                       == ListItemType.AlternatingItem)
             {
                 LinkButton btn = (LinkButton)(e.Item.Cells[7].Controls[1]);
                 btn.Attributes.Add("onClick","JavaScript:return confirm('确定删除吗?')");

                 //也可以在页面代码中直接设置Image或ImageButton的ImageUrl属性,详见页面代码.

                 //System.Web.UI.WebControls.ImageButton myimage=(System.Web.UI.WebControls

                 //.ImageButton)e.Item.Cells[5].FindControl("ImageButton1");
                 //myimage.ImageUrl="DisplayImage.aspx?id="+DataGrid1.DataKeys

                 //[e.Item.ItemIndex];                 
             }
         }

         //删除按钮
         private void DataGrid_DeleteCommand(object source,

                 System.Web.UI.WebControls.DataGridCommandEventArgs e)
         {

            string employeeID=DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString();
            string strSql="delete Employees where EmployeeID="+employeeID;

            if(! new Base().SQLExeNonQuery(strSql))

            {
               Message.InnerHtml="删除失败!";
               Message.Style["color"]="red";
            }
            else
            {
               BindGrid();
            }
         }

         //datagrid的模板列修改链接按钮
         private void DataGrid_EditCommand(object source,

                System.Web.UI.WebControls.DataGridCommandEventArgs e)
         {
            Button1.Visible=false;//隐藏添加按钮
            Button2.Visible=true;
            Button3.Visible=true;
            if(ViewState["datagridsource"].ToString() != "")
            {
               DataSet ds=(DataSet)ViewState["datagridsource"];

               //获取要编辑的记录序号
               int startIndex = DataGrid1.PageSize * DataGrid1.CurrentPageIndex;
               int i=(int)e.Item.ItemIndex+startIndex;
               //员工编号,用于修改语句的where子句.
               TextBox9.Text=ds.Tables[0].Rows[i]["EmployeeID"].ToString();//不可编辑
               TextBox1.Text=ds.Tables[0].Rows[i]["EmployeeName"].ToString();
               DropDownList1.SelectedValue=ds.Tables[0].Rows[i]["GroupID"].ToString();
               if(ds.Tables[0].Rows[i]["Sex"].ToString() == "F")
               {
                  RadioButton2.Checked=true;
                  RadioButton1.Checked=false;
                  
               else
               {
                  RadioButton1.Checked=true;
                  RadioButton2.Checked=false;
               }
               TextBox2.Text=ds.Tables[0].Rows[i]["Business"].ToString();
               TextBox3.Text=ds.Tables[0].Rows[i]["sbirthdate"].ToString();
               TextBox4.Text=ds.Tables[0].Rows[i]["shiredate"].ToString();
               TextBox5.Text=ds.Tables[0].Rows[i]["Address"].ToString();
               TextBox6.Text=ds.Tables[0].Rows[i]["HomePhone"].ToString();
               TextBox7.Text=ds.Tables[0].Rows[i]["CellPhone"].ToString();
               TextBox8.Text=ds.Tables[0].Rows[i]["Notes"].ToString();
            }
          }

          //模板列"照片"使用了imagebutton控件,按钮的commandname属性设置为Update,借用了DataGrid

          //固有的修改事件处理方法.
          private void DataGrid_MyCommand(object source,

                 System.Web.UI.WebControls.DataGridCommandEventArgs e)
          {
             string strlink="<script>window.open('DisplayImage.aspx?id="+DataGrid1.DataKeys

                  [(int)e.Item.ItemIndex]+"','newwindow','height=400,width=600,top=0,

                   left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,

                      location=no,status=no');</script>";
             Response.Write(strlink);
          }

          //修改信息
          private void Button2_Click(object sender, System.EventArgs e)
          {

             if(TextBox1.Text.Trim()=="")
             {
                Label1.Text="姓名不能为空";
                return;
             }
             string strSql="update Employees set EmployeeName=@EmployeeName,

                 Business=@Business, GroupID=@GroupID, BirthDate=@BirthDate,

                  HireDate=@HireDate, "+"Address=@Address,HomePhone=@HomePhone,

                  CellPhone=@CellPhone, Photo=@Photo, PhotoImageType=@PhotoImageType,

                   Notes=@Notes,Sex=@Sex where EmployeeID="+TextBox9.Text.Trim();      
             SqlCommand mycommand=new SqlCommand(strSql);

             //设置SQL参数
             setprocargument(mycommand);
             Base basecode=new Base();

             if(basecode.SQLExeNonQuery_proc(mycommand))
             {
                BindGrid();
                TextBox1.Text="";
                TextBox2.Text="";
                TextBox3.Text="";
                TextBox4.Text="";
                TextBox5.Text="";
                TextBox6.Text="";
                TextBox7.Text="";
                TextBox8.Text="";
             }
             else
             {
                EditMessage.InnerHtml="Update Failed. Error Details are: "+

                         basecode.BaseSqlErrDes;
                EditMessage.Style["color"]="red";
             }
          }

          //设置SQL参数

          void setprocargument(SqlCommand mycommand)
          {
             SqlParameter name=new SqlParameter("@EmployeeName", SqlDbType.VarChar, 30);
             name.Value=TextBox1.Text.Trim();
             mycommand.Parameters.Add(name);

             SqlParameter groupID=new SqlParameter("@GroupID", SqlDbType.SmallInt);
             string organization=DropDownList1.SelectedValue;
             if(organization !="")
                groupID.Value=int.Parse(organization);
             else
                groupID.Value=DBNull.Value;
             mycommand.Parameters.Add(groupID);

             SqlParameter business=new SqlParameter("@Business", SqlDbType.VarChar, 30);
             business.Value=TextBox2.Text.Trim();
             mycommand.Parameters.Add(business);

             SqlParameter birthDate=new SqlParameter("@BirthDate", SqlDbType.DateTime);
             Regex reg =new Regex(@"^\d{1,4}(\-?)|(\/?)\d{1,2}(\-?)|(\/?)\d{1,2}$");
             if(TextBox3.Text.Trim() =="")
                 birthDate.Value=DBNull.Value;
             else
             {
                 if(! reg.IsMatch(TextBox3.Text.Trim()))
                 {
                    Label2.Text="日期格式2008-8-8或2008/8/8";
                    return;
                 }
                 birthDate.Value=TextBox3.Text.Trim();
             }
             mycommand.Parameters.Add(birthDate);

             SqlParameter hireDate=new SqlParameter("@HireDate", SqlDbType.DateTime);
             if(TextBox4.Text.Trim() =="")
                  hireDate.Value=DBNull.Value;
             else
             {
                  if(! reg.IsMatch(TextBox4.Text.Trim()))
                  {
                     Label3.Text="日期格式2008-8-8或2008/8/8";
                     return;
                  }
                  hireDate.Value=TextBox4.Text.Trim();
             }
             mycommand.Parameters.Add(hireDate);

             SqlParameter address=new SqlParameter("@Address", SqlDbType.VarChar, 60);
             address.Value=TextBox5.Text.Trim();
             mycommand.Parameters.Add(address);

             SqlParameter homePhone=new SqlParameter("@HomePhone", SqlDbType.VarChar, 20);
             homePhone.Value=TextBox6.Text.Trim();
             mycommand.Parameters.Add(homePhone);

             SqlParameter cellPhone=new SqlParameter("@CellPhone", SqlDbType.VarChar, 20);
             cellPhone.Value=TextBox7.Text.Trim();
             mycommand.Parameters.Add(cellPhone);

             int imagesize;
             string imagetype;
             Stream imagestream;

             imagesize=PersonImage.PostedFile.ContentLength;
             if(imagesize>0)
             {
                imagetype=PersonImage.PostedFile.ContentType;
                imagestream=PersonImage.PostedFile.InputStream;

                byte[] imagecotent=new byte[imagesize];
                int intstatus;
                intstatus=imagestream.Read(imagecotent,0,imagesize);   
                SqlParameter pimage=new SqlParameter("@Photo", SqlDbType.Image);
                pimage.Value=imagecotent;
                mycommand.Parameters.Add(pimage);

                SqlParameter pimagetype=new SqlParameter("@PhotoImageType",

                    SqlDbType.VarChar, 30);
                pimagetype.Value=imagetype;
                mycommand.Parameters.Add(pimagetype);
             }
             else
             {
                SqlParameter pimage=new SqlParameter("@Photo", SqlDbType.Image);
                pimage.Value=DBNull.Value;
                mycommand.Parameters.Add(pimage);

                SqlParameter pimagetype=new SqlParameter("@PhotoImageType",

                    SqlDbType.VarChar, 30);
                pimagetype.Value="";
                mycommand.Parameters.Add(pimagetype);
             }

             SqlParameter notes=new SqlParameter("@Notes", SqlDbType.NText);
             notes.Value=TextBox8.Text.Trim();
             mycommand.Parameters.Add(notes);

             SqlParameter psex=new SqlParameter("@Sex", SqlDbType.Char,1);
             if(RadioButton1.Checked)
                psex.Value="M";
             else
                psex.Value="F";
             mycommand.Parameters.Add(psex); 
          }

          private void DataGrid1_PageIndexChanged(object source,

              System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
          {
              DataGrid1.CurrentPageIndex = e.NewPageIndex;
              BindGrid();
          }

          //取消修改
          private void Button3_Click(object sender, System.EventArgs e)
          {
              TextBox1.Text="";
              TextBox2.Text="";
              TextBox3.Text="";
              TextBox4.Text="";
              TextBox5.Text="";
              TextBox6.Text="";
              TextBox7.Text="";
              TextBox8.Text="";
              Button1.Visible=true;
              Button2.Visible=false;
              Button3.Visible=false;
           
       }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值