• 导航

Web c# 网站系统源码开发连载系列-4 管理员账号

内容摘要:Web c# 网站系统源码开发连载系列-4 管理员账号

页面代码

 <table cellspacing="0" cellpadding="5" width="80%" border="0" bordercolor="gainsboro">
        <tbody>
            <tr>
                <td align="center" style="width: 73px">
                    账 号:
                </td>
                <td align="left">
                    <asp:TextBox ID="txt_username" runat="server" Width="134px" MaxLength="20"></asp:TextBox>
                </td>
            </tr>
        </tbody>
    </table>
    <table cellspacing="0" cellpadding="5" width="100%" border="0" bordercolor="gainsboro">
        <tbody>
            <tr>
                <td colspan="2">
                    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                    </asp:DropDownList></td>
            </tr>
            <tr>
                <td>
                    已有权限
                </td>
                <td>
                    新增权限
                </td>
            </tr>
            <tr>
                <td>
                    <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="3" RepeatDirection="Horizontal">
                    </asp:CheckBoxList>
                </td>
                <td>
                    <asp:CheckBoxList ID="CheckBoxList2" runat="server" RepeatColumns="3" RepeatDirection="Horizontal">
                    </asp:CheckBoxList>
                    <asp:Button ID="Button_Check" runat="server" Text="全选" OnClick="Button_Check_Click" /></td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="Button_Delete" runat="server" Text="删除权限" OnClick="Button_Delete_Click" />
                </td>
                <td>
                    <asp:Button ID="Button_Add" runat="server" Text="增加权限" OnClick="Button_Add_Click" />
                </td>
            </tr>
        </tbody>
    </table>

程序代码

  AdminDB myadminDB = new AdminDB();
           JscriptDB MyJ = new JscriptDB();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                BindCatagory();
                if (Request.QueryString["UserName"] != null)
                {
                    txt_username.Text = Request.QueryString["UserName"].ToString();
                }
                BindExistAuthority();
                BindNoAuthority();
               
            }
        }
        private void BindCatagory()
        {
 
            DataTable dt = myadminDB.BackAllCatagory();
            if (dt.Rows.Count > 0)
            {
                this.DropDownList1.DataSource = dt;
                this.DropDownList1.DataTextField = "CategoryName";
                this.DropDownList1.DataValueField = "CategoryID";
                this.DropDownList1.DataBind();
            }
            else
            {
                MyJ.AlertAndRedirect("请先添加分类", "AuthorityCategory.aspx");
            }
        }
        private void BindExistAuthority()
        {
            DataTable dt = myadminDB.BackAllCatagory();
            if (dt.Rows.Count > 0)
            {
                int CategoryID = Convert.ToInt32(this.DropDownList1.SelectedValue);
                this.CheckBoxList1.DataSource = myadminDB.BackAdminAuthorityByUserNameCategoryID(txt_username.Text, CategoryID);
                this.CheckBoxList1.DataTextField = "UrlName";
                this.CheckBoxList1.DataValueField = "Url";
                this.CheckBoxList1.DataBind();
            }
            else
            {
                MyJ.AlertAndRedirect("请先添加分类", "AuthorityCategory.aspx");
            }
        }
        private void BindNoAuthority()
        {
            DataTable dt = myadminDB.BackAllCatagory();
            if (dt.Rows.Count > 0)
            {
                int CategoryID = Convert.ToInt32(this.DropDownList1.SelectedValue);
                this.CheckBoxList2.DataSource = myadminDB.BackAdminAuthorityOtherByUserName(txt_username.Text, CategoryID);
                this.CheckBoxList2.DataTextField = "UrlName";
                this.CheckBoxList2.DataValueField = "Url";
                this.CheckBoxList2.DataBind();
            }
            else
            {
                MyJ.AlertAndRedirect("请先添加分类", "AuthorityCategory.aspx");
            }
        }
        private void Bind()
        {
           
            SqlDataReader dr = myadminDB.BackAdminDetailByUserName(txt_username.Text);
            if (dr.Read())
            {
                string[] Authority = dr["Authority"].ToString().Split(',');
                for (int i = 0; i < this.CheckBoxList1.Items.Count; i++)
                {
                    if (Authority[i].ToString() == "0")
                    {
                        this.CheckBoxList1.Items[i].Selected = false;
                    }
                    else
 
                    {
                        this.CheckBoxList1.Items[i].Selected = true;
                    }
                }
            }
 
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
            string username = txt_username.Text.Replace("'", "").Trim();
            string Authority = "";
            for (int i = 0; i < this.CheckBoxList1.Items.Count; i++)
            {
                if (this.CheckBoxList1.Items[i].Selected)
                {
                    Authority += "1,";
                }
                else
                {
                    Authority += "0,";
                }
            }
            Authority = Authority.Substring(0, Authority.Length - 1);
            if (myadminDB.UpdateAdminAuthority(username, Authority))
            {
                MyJ.AlertAndRedirect("您真棒", "AdminManage.aspx");
            }
        }
 
        protected void Button_Add_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < this.CheckBoxList2.Items.Count; i++)
            {
                if (this.CheckBoxList2.Items[i].Selected)
                {
                    int CateogoryID=0;
                    SqlDataReader dr=myadminDB.BackAuthorityByUrl(CheckBoxList2.Items[i].Value);
                    if(dr.Read())
                    {
                        CateogoryID=Convert.ToInt32(dr["CategoryID"].ToString());
                    }
                    myadminDB.InsertAdminAuthority(txt_username.Text.Trim(), CheckBoxList2.Items[i].Value, CheckBoxList2.Items[i].Text, CateogoryID);
                    dr.Close();
 
                }
            }
            this.BindExistAuthority();
            this.BindNoAuthority();
        }
 
        protected void Button_Delete_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < this.CheckBoxList1.Items.Count; i++)
            {
                if (this.CheckBoxList1.Items[i].Selected)
                {
                    myadminDB.DeleteAdminAuthority(CheckBoxList1.Items[i].Value);
 
                }
            }
            this.BindExistAuthority();
            this.BindNoAuthority();
        }
 
        protected void Button_Check_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < this.CheckBoxList2.Items.Count; i++)
            {
                this.CheckBoxList2.Items[i].Selected = true;
            }
        }
 
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            BindExistAuthority();
            BindNoAuthority();
        }

数据类代码

    public bool InsertAdminAuthority(string UserName, string Url, string UrlName, int CategoryID)
        {
            SqlConnection conn = this.CreateConn();
            SqlCommand MyCommand = new SqlCommand("InsertAdminAuthority", conn);
            MyCommand.CommandType = CommandType.StoredProcedure;
 
            SqlParameter parameterUserName = new SqlParameter("@UserName", SqlDbType.NVarChar, 50);
            parameterUserName.Value = UserName;
            MyCommand.Parameters.Add(parameterUserName);
 
            SqlParameter parameterUrl = new SqlParameter("@Url", SqlDbType.NVarChar, 50);
            parameterUrl.Value = Url;
            MyCommand.Parameters.Add(parameterUrl);
 
            SqlParameter parameterUrlName = new SqlParameter("UrlName", SqlDbType.NVarChar, 50);
            parameterUrlName.Value = UrlName;
            MyCommand.Parameters.Add(parameterUrlName);
 
            SqlParameter parameterCategoryID = new SqlParameter("CategoryID", SqlDbType.Int);
            parameterCategoryID.Value = CategoryID;
            MyCommand.Parameters.Add(parameterCategoryID);
 
            try
            {
                conn.Open();
                MyCommand.ExecuteNonQuery();
                SqlConnection.ClearAllPools();
                return true;
            }
            catch
            {
 
                return false;
            }
        }
        public bool UpdateAdminAuthorityCounts(string UserName, string Url)
        {
            SqlConnection conn = this.CreateConn();
            SqlCommand MyCommand = new SqlCommand("UpdateAdminAuthorityCounts", conn);
            MyCommand.CommandType = CommandType.StoredProcedure;
 
            SqlParameter parameterUserName = new SqlParameter("@UserName", SqlDbType.NVarChar, 50);
            parameterUserName.Value = UserName;
            MyCommand.Parameters.Add(parameterUserName);
 
            SqlParameter parameterUrl = new SqlParameter("@Url", SqlDbType.NVarChar, 50);
            parameterUrl.Value = Url;
            MyCommand.Parameters.Add(parameterUrl);
 
            try
            {
                conn.Open();
                MyCommand.ExecuteNonQuery();
                SqlConnection.ClearAllPools();
                return true;
            }
            catch
            {
 
                return false;
            }
        } public DataTable BackAdminAuthorityByUserNameCategoryID(string UserName, int CategoryID)
        {
            SqlConnection conn = this.CreateConn();
            SqlCommand MyCommand = new SqlCommand("BackAdminAuthorityByUserNameCategoryID", conn);
            MyCommand.CommandType = CommandType.StoredProcedure;
 
            SqlParameter parameterUserName = new SqlParameter("@UserName", SqlDbType.NVarChar, 50);
            parameterUserName.Value = UserName;
            MyCommand.Parameters.Add(parameterUserName);
 
            SqlParameter parameterCategoryID = new SqlParameter("CategoryID", SqlDbType.Int);
            parameterCategoryID.Value = CategoryID;
            MyCommand.Parameters.Add(parameterCategoryID);
 
 
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = MyCommand;
            DataSet ds = new DataSet();
            conn.Open();
            da.Fill(ds, "x");
            DataTable dt = new DataTable();
            dt = ds.Tables["x"];
            conn.Close();
            SqlConnection.ClearPool(conn);
            return dt;
        }
        public DataTable BackAdminAuthorityOtherByUserName(string UserName, int CategoryID)
        {
            SqlConnection conn = this.CreateConn();
            SqlCommand MyCommand = new SqlCommand("BackAdminAuthorityOtherByUserName", conn);
            MyCommand.CommandType = CommandType.StoredProcedure;
 
            SqlParameter parameterUserName = new SqlParameter("@UserName", SqlDbType.NVarChar, 50);
            parameterUserName.Value = UserName;
            MyCommand.Parameters.Add(parameterUserName);
 
            SqlParameter parameterCategoryID = new SqlParameter("CategoryID", SqlDbType.Int);
            parameterCategoryID.Value = CategoryID;
            MyCommand.Parameters.Add(parameterCategoryID);
 
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = MyCommand;
            DataSet ds = new DataSet();
            conn.Open();
            da.Fill(ds, "x");
            DataTable dt = new DataTable();
            dt = ds.Tables["x"];
            conn.Close();
            SqlConnection.ClearPool(conn);
            return dt;
        }

数据库存储过程

 
CREATE PROCEDURE InsertAdminAuthority
(@Url nvarchar(50),@UrlName nvarchar(50),@CategoryID INT,@UserName nvarchar(50))
 AS
insert into AdminAuthority(Url,UrlName,CategoryID,UserName)values(@Url,@UrlName,@CategoryID,@UserName)
 
 
GO
 
 
CREATE PROCEDURE BackAdminAuthorityByUserNameCategoryID
(@UserName nvarchar(50),@CategoryID INT)
AS
select * from AdminAuthority where UserName=@UserName and CategoryID=@CategoryID order by CategoryID asc,id asc
 
GO
 
 
CREATE PROCEDURE BackAdminAuthorityOtherByUserName
(@UserName nvarchar(50),@CategoryID INT)
AS
select * from Authority where Url not in(select url from AdminAuthority where UserName=@UserName)  AND  CategoryID=@CategoryID  order by CategoryID ASC
 
 
GO
 
CREATE PROCEDURE DeleteAdminAuthority
(@ID INT)
 AS
delete from AdminAuthority where ID=@ID
GO
 
 

您可能还会对下面的文章感兴趣: