ASP.NET 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : 31.10.1. 회원 가입 : (관리자)회원에게 그룹 권한 설정 : UserViewAddGroup.ascx.cs
글번호: 211
작성자: 레드플러스
작성일: 2007/07/05 오후 6:02:00
조회수: 4992
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;//

public partial class UserViewAddGroup : System.Web.UI.UserControl
{
  protected void Page_Load(object sender, EventArgs e)
  {
        if (!Page.IsPostBack)
        {
            DisplayData(); // 현재 사용자에 대한 그룹 리스트 출력    
        }
  }
    private void DisplayData()
    {
        GetGroupByUID(); // 포함된 그룹 리스트를 체크박스에 출력
        GetGroupNotInUse(); //포함되지않는 그룹을 드롭다운리스트에 출력
    }

    private void GetGroupNotInUse()
    {
        SqlConnection objCon = new SqlConnection();
        objCon.ConnectionString =
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
        objCon.Open();
        SqlCommand objCmd = new SqlCommand();
        objCmd.Connection = objCon;
        // 현재 접속자에 포함된 그룹 정보 읽어오기
        objCmd.CommandText = "GetGroupNotInUse";
        objCmd.CommandType = CommandType.StoredProcedure;//***
        objCmd.Parameters.AddWithValue("@UID", Request["UID"]);
        SqlDataReader objDr = objCmd.ExecuteReader();
        while (objDr.Read()) // 한명의 사용자가 여러개의 그룹 부여
        {
            // 체크박스 리스트에 추가할 하나의 항목(Item) 생성/값대입
            ListItem li = new ListItem();
            li.Text = objDr["DomainID"].ToString()
                + "(" + objDr["Name"].ToString() + ")";
            li.Value = objDr["GroupUID"].ToString();
            this.lstGroupList.Items.Add(li);//하나의 항목 추가
        }
        objDr.Close();
        objCon.Close();
    }

    private void GetGroupByUID()
    {
        SqlConnection objCon = new SqlConnection();
        objCon.ConnectionString =
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
        objCon.Open();
        SqlCommand objCmd = new SqlCommand();
        objCmd.Connection = objCon;
        // 현재 접속자에 포함된 그룹 정보 읽어오기
        objCmd.CommandText = @"
            Select GroupUID, Name, DomainID
            From Membership, Groups
            Where
                Membership.GroupUID = Groups.UID
                And
                Membership.UserUID = @UID
            Order By DomainID Asc
        ";
        objCmd.Parameters.AddWithValue("@UID", Request["UID"]);
        SqlDataReader objDr = objCmd.ExecuteReader();
        while (objDr.Read()) // 한명의 사용자가 여러개의 그룹 부여
        {
            // 체크박스 리스트에 추가할 하나의 항목(Item) 생성/값대입
            ListItem li = new ListItem();
            li.Text = objDr["DomainID"].ToString()
                + "(" + objDr["Name"].ToString() + ")";
            li.Value = objDr["GroupUID"].ToString();
            this.lstGroup.Items.Add(li);//하나의 항목 추가
        }
        objDr.Close();
        objCon.Close();
    }

    protected void btnDeleteGroup_Click(object sender, EventArgs e)
    {
        string strGroupUID = "0";
        foreach (ListItem li in lstGroup.Items)
        {
            if (li.Selected)
            {
                strGroupUID += ", " + li.Value;
            }
        }

        string strSql = @"Delete Membership
            Where UserUID = @UserUID And GroupUID In(" + strGroupUID + ")";

        SqlConnection objCon = new SqlConnection();
        objCon.ConnectionString =
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
        objCon.Open();
        SqlCommand objCmd = new SqlCommand();
        objCmd.Connection = objCon;
        objCmd.CommandText = strSql;
        objCmd.Parameters.AddWithValue("@UserUID", Request["UID"]);

        objCmd.ExecuteNonQuery();
        objCon.Close();
        // 현재 페이지 다시 로드
        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]
            + "?UID=" + Request["UID"]);
    }
    protected void btnAddGroup_Click(object sender, EventArgs e)
    {
        // 현재 사용자에게 드롭다운리스트에서 선택한 그룹의 UID값을 추가
        string strSql =
            @"Insert Membership(UserUID, GroupUID)
                Values(@UserUID, @GroupUID)";
        SqlConnection objCon = new SqlConnection();
        objCon.ConnectionString =
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
        objCon.Open();
        SqlCommand objCmd = new SqlCommand();
        objCmd.Connection = objCon;
        objCmd.CommandText = strSql;

        objCmd.Parameters.AddWithValue("@UserUID", Request["UID"]);
        objCmd.Parameters.AddWithValue("@GroupUID",
            lstGroupList.SelectedValue);

        objCmd.ExecuteNonQuery();
        objCon.Close();
        // 현재 페이지 다시 로드
        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]
            + "?UID=" + Request["UID"]);
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 32. 자주 사용되는 메서드를 클래스라이브러리 프로젝트로 포함 - 레드플러스 2007-06-26 5995
  31. 회원 가입 - 레드플러스 2007-06-22 7388
  31.1. 회원 가입 관련 테이블, 뷰, 저장 프로시저 구문 - 레드플러스 2007-06-22 8007
  31.2. ~/Web.config - 레드플러스 2007-06-22 7387
  31.2.3. DAAB : Microsoft.ApplicationBlocks.Data... Microsoft.ApplicationBlocks.Data(1).dll(32 KB) 레드플러스 2007-07-11 5792
  31.3. 회원 가입 페이지 : ~/Register.ascx - 레드플러스 2007-06-22 6184
  31.3.1. 회원 가입 페이지 : ~/Register.ascx.cs - 레드플러스 2007-06-22 6049
  31.4. 회원 가입 : 로그인 페이지 : Login.ascx - 레드플러스 2007-06-22 5922
  31.4. 회원 가입 : 로그인 페이지 : Login.ascx.cs - 레드플러스 2007-06-22 6652
  31.5. 회원 가입 : 회원 정보 표시 : LoginInfor.ascx - 레드플러스 2007-06-22 6546
  31.5.1. 회원 가입 : 회원 정보 표시 : LoginInfor.ascx.cs - 레드플러스 2007-06-22 5127
  31.6. 회원 가입 : 회원 정보 수정 및 탈퇴 페이지 : UserInfor.asc... - 레드플러스 2007-06-25 7291
  31.6. 회원 가입 : 회원 정보 수정 및 탈퇴 페이지 : UserInfor.asc... - 레드플러스 2007-06-25 7387
  31.7. (관리자 전용) 회원 전체 리스트 출력 : UserList.ascx - 레드플러스 2007-06-29 5080
  31.7.1. (관리자 전용) 회원 전체 리스트 출력 : UserList.ascx.c... - 레드플러스 2007-06-29 5255
  31.8. 회원 가입 : (관리자 전용) 회원 정보 변경 : UserView.ascx... - 레드플러스 2007-07-02 9676
  31.8.1. 회원 가입 : (관리자 전용) 회원 정보 변경 : UserView.as... - 레드플러스 2007-07-02 4979
  31.9. 회원 가입 : 로그인 환영 메시지 페이지 : Greetings.ascx - 레드플러스 2007-07-04 6080
  31.9.1. 회원 가입 : 로그인 환영 메시지 페이지 : Greetings.ascx... - 레드플러스 2007-07-04 5161
  31.10. 회원 가입 : (관리자)회원에게 그룹 권한 설정 : UserViewAdd... - 레드플러스 2007-07-05 5051
현재글 31.10.1. 회원 가입 : (관리자)회원에게 그룹 권한 설정 : UserViewA... - 레드플러스 2007-07-05 4992
  31.11. NewGroup.ascx : 새로운 그룹(Roles) 추가 - 레드플러스 2007-07-06 4834
  31.11.1. NewGroup.ascx.cs : 새로운 그룹(Roles) 추가 - 레드플러스 2007-07-06 4802
  31.12. GroupList.ascx : 전체 그룹(Roles) 리스트 : 컨트롤 ... - 레드플러스 2007-07-06 5331
  31.13. 그룹 상세 정보 보기 : GroupView.ascx?UID={0} - 레드플러스 2007-07-10 5206
  31.13.1. 그룹 상세 정보 보기 : GroupView.ascx.cs - 레드플러스 2007-07-10 5431
다음글 30. 기본형 게시판 만들기(3계층으로 분리하지 않음) - 레드플러스 2007-06-18 8612
 
손님 사용자 Anonymous (손님)
로그인 Home