블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

Category

Recent Post

Recent Comment

Archive

2009. 10. 8. 01:51 .Net Project/ASP.NET 3.5 Sp1
반응형
 Basic/View.aspx 디자인 모드



- View.aspx 웹 페이지 실행하면 각각의 Lavel에 등록한 

- 제목, 번호, 이름, 이메일, 홈페이지, 작성일, 조회수, 아이피주소, 내용 을 표시

- 수정, 삭제, 리스트 버튼 클릭할 경우 각각의 웹 페이지로 이동 완료 출력하여 준다. 

<%@ Page Language="C#" AutoEventWireup="true"
                                  CodeFile="View.aspx.cs" Inherits="Basic_View" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>보기 : View</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h3>글쓰기</h3>

    제목 : <asp:Label ID="lblTitle" runat="server" 
                                  ForeColor="Red"></asp:Label><br />

    번호 : <asp:Label ID="lblNum" runat="server"
                                  ForeColor="Red"></asp:Label><br />

    이름 : <asp:Label ID="lblName" runat="server"
                                  ForeColor="Red"></asp:Label><br />

    이메일 : <asp:Label ID="lblEmail" runat="server"
                                  ForeColor="Red"></asp:Label><br />

    홈페이지 : <asp:Label ID="lblHomepage" runat="server"
                                  ForeColor="Red"></asp:Label><br />

    작성일 : <asp:Label ID="lblPostDate" runat="server"
                                  ForeColor="Red"></asp:Label><br />

    조회수 : <asp:Label ID="lblReadCount" runat="server"
                                  ForeColor="Red"></asp:Label><br />

    IP주소 : <asp:Label ID="lblPostIP" runat="server"
                                  ForeColor="Red"></asp:Label><br />
   
    <asp:Label ID="lblContent" runat="server" Text="" 
                          ForeColor="Red"></asp:Label><br />
   
    <asp:Button ID="btnModifty" runat="server" Text="수정"
                          onclick="btnModifty_Click" />
    <asp:Button ID="btnDelete" runat="server" Text="삭제"
                          onclick="btnDelete_Click" />&nbsp
    <asp:Button ID="btnList" runat="server" Text="리스트" 
                          onclick="btnList_Click" />&nbsp
    </div>
    </form>
</body>
</html>


 Basic/View.aspx.Cs 이벤트 컨트롤 관련 모드

using System;
using System.Collections;
using System.Configuration;
using System.Data;
sing System.Data.SqlClient;

public partial class Basic_View : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //넘겨져 온 쿼리 스트링 검사
        if (String.IsNullOrEmpty(Request["Num"]))
        {
            Response.Write("잘못된 요청입니다");
            Response.End();
        }
        else
        {
            if (!Page.IsPostBack)
            {
                //넘겨져온 번호에 해당하는 글 출력
                Display(); //호출
            }
        }
    }

    private void Display()
    {
        SqlConnection con = new SqlConnection
                                      (ConfigurationManager.ConnectionStrings
                                      ["ConnectionString"].ConnectionString);
        con.Open();

        SqlCommand cmd = new SqlCommand("ViewBasic", con);
        cmd.CommandType = CommandType.StoredProcedure;

        //파라미터 추가 : List.aspx에서 넘겨온 쿼리 스트링 값
        cmd.Parameters.AddWithValue("@Num", Request["Num"]);

        //상세보기 :DataReader
        SqlDataReader dr = cmd.ExecuteReader();
       
        //바인딩 : 각각의 컨트롤
        while (dr.Read())
        {
            this.lblNum.Text = dr["Num"].ToString();
            this.lblName.Text = dr["Name"].ToString();
            this.lblEmail.Text = dr["Email"].ToString();
            this.lblHomepage.Text = dr["Homepage"].ToString();
            this.lblTitle.Text = dr["Title"].ToString();
            this.lblPostDate.Text = dr["PostDate"].ToString();
           
            //인코딩에 따른 Content 출력 3가지 방법
            string encoding = dr["Encoding"].ToString(); //Text/Html
            if (encoding == "Text") //Text이면
            {
                this.lblContent.Text =
                        dr["Content"].ToString().Replace("&", "&amp;")
                                            .Replace("<", "lt;")
                                            .Replace(">", "&gt;")
                                            .Replace
                                              ("\t","&nbsp;&nbsp;&nbsp;&nbsp;")
                                            .Replace("\r\n", "<br />");
            }
            else if(encoding =="Mixed") //태그는 실행하되, 엔터는 처리
            {
                this.lblContent.Text =
                                      dr["Content"].ToString().Replace("\r\n", "<br />");
            }
            else //html로 변환해서 출력
            {
                this.lblContent.Text = dr["Content"].ToString();
            }
            
            this.lblContent.Text = dr["Content"].ToString();
            this.lblReadCount.Text = dr["ReadCount"].ToString();
            this.lblPostIP.Text = dr["PostIP"].ToString();
           
        }
        dr.Close();
        con.Close();       
    }
    protected void btnModifty_Click(object sender, EventArgs e)
    {
        //수정 페이지로 현재 글의 번호 값 넘김
        string strUrl = String.Empty;
        strUrl = "./Modify.aspx?Num=" + Request["Num"];
        Response.Redirect(strUrl);
    }
    protected void btnDelete_Click(object sender, EventArgs e)
    {
        //삭제된 페이지로 현재 글의 번호 값 넘김
        Response.Redirect(String.Format
                       ("Delete.aspx?Num={0}", Request["Num"]));
    }
    protected void btnList_Click(object sender, EventArgs e)
    {
        //리스트 페이지로 이동
        Response.Redirect("./List.aspx");
    }
}







반응형
posted by Magic_kit
2009. 10. 8. 01:21 .Net Project/ASP.NET 3.5 Sp1
반응형
 Basic/Search.aspx 디자인 모드



- 초기에 List.aspx에 의해서 게시판 목록이 출력 완료 된다 

- 다음과 같이 검색 하기 위해하여 드롭다운에서 검색할 목록을 선택 후 

- 텍스트 박스에 제목, 작성자, 번호, 선택 후 검색 버튼 클릭하면 

- 검색 Serch.aspx 페이지로 이동 하여 검색 결과를 출력하여 보여준다   

<%@ Page Language="C#" AutoEventWireup="true"
                                  CodeFile="Search.aspx.cs" Inherits="Basic_Search" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                        "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>검색 : Search</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h3>검색 리스트</h3>
//GridView 서식 디자인 이용하여 속성 설정
       <asp:GridView ID="ctlBasicList" runat="server" BackColor="White"
            AutoGenerateColumns="false"
            BorderColor="#999999" BorderStyle="Outset"
                                BorderWidth="10px" CellPadding="3" 
                                ForeColor="Black" GridLines="Vertical">
           
            <FooterStyle BackColor="#CCCCCC" />
            <PagerStyle BackColor="#999999" ForeColor="Black" 
                                               HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True"
                                               ForeColor="White" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="#CCCCCC" />
           
            <Columns>
                <asp:BoundField HeaderText="번호" DataField="Num"  />
              
                <asp:HyperLinkField HeaderText ="제목"
                         DataNavigateUrlFields ="Num"
                         DataNavigateUrlFormatString="View.aspx?Num={0}"
                         DataTextField="Title"
                         ItemStyle-Width ="350px" />
                        
                <asp:BoundField HeaderText="작성자" DataField="Name" />
                <asp:BoundField HeaderText="작성일" DataField="PostDate" 
                                                         DataFormatString="{0:yyyy-MM-dd}" />
                <asp:BoundField HeaderText="조회수" DataField="ReadCount" />
           </Columns>
        </asp:GridView> 

        <asp:Button ID="btnList" runat="server" Text="검색종료"
                                onclick="btnList_Click" />            
    </div>
    </form>
</body>
</html>


 Basic/Search.aspx.cs 이벤트 컨트롤 관련 모드  

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

public partial class Basic_Search : System.Web.UI.Page
{    
    protected void Page_Load(object sender, EventArgs e)
    {
        //그리드뷰 컨트롤에 이터 출력
        if (!Page.IsPostBack)
        {
            //그리드뷰 컨트롤에 데이터 출력
            DisplayData(); //호출
        }
    }

    private void DisplayData()
    {
        //[1]커넥션
        SqlConnection con = new SqlConnection
                              (ConfigurationManager.ConnectionStrings
                              ["ConnectionString"].ConnectionString);

        //[2]커맨드
        SqlCommand cmd = new SqlCommand("SearchBasic", con);

        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue
                                 ("@SearchField", Request["SearchField"]);
        cmd.Parameters.AddWithValue
                                 ("@SearchQuery", Request["SearchQuery"]);

        //[3]데이터어댑터
        SqlDataAdapter da = new SqlDataAdapter(cmd);

        //[3]데이터셋
        DataSet ds = new DataSet();

        //[4]Fill()
        da.Fill(ds, "Basic");
       
        //[5]바인딩
        this.ctlBasicList.DataSource = ds.Tables[0];
        this.ctlBasicList.DataBind();

    }
    protected void btnList_Click(object sender, EventArgs e)
    {
        Response.Redirect("List.aspx");
    }
}







반응형
posted by Magic_kit
2009. 10. 8. 01:06 .Net Project/ASP.NET 3.5 Sp1
반응형
 Basic.Delete.aspx 디자인 모드



- 리스트 목록 List.aspx 에서 목록 선택하여 다음과 같이 이동 가능 하며,

- 이동 후에 수정 페이지 Modify.aspx 이동 하고, 삭제 Delete.aspx 로 페이지 이동 하면

- 다음과 같은 화면이 출력 "1번 글을 삭제 하시겠습니까??"

- 암호 텍스트 박스 입력후 암호 일치하면 삭제 완료 되며,

- 암호가 일치(불일치)할 경우에는 Lavel에 "패스워드가 일치 않습니다"라는 메시지 출력 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Delete.aspx.cs"
                                 Inherits="Basic_Delete" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                        "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>글 삭제: Delete</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Label ID="lblNum" runat="server" ForeColor="Red"></asp:Label>
                          번 글을 삭제 하겠습니까 <br />
   
    암호 :
    <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
    <asp:Button ID="btnDelete" runat="server" Text="삭제"
            OnClientClick="return confirm('정말로삭제??');"
                                 onclick="btnDelete_Click" />
    <asp:Button ID="btnCancel" runat="server" Text="취소" 
                                 onclick="btnCancel_Click" />
    
    <asp:Label ID="lblError" runat="server" Text="Label"></asp:Label>
   
    </div>
    </form>
</body>
</html>


 Basic.Delete.aspx.Cs 이벤트 컨트롤 관련 모드

using System;
using System.Collections;
using System.Configuration;
using System.Data;

using System.Data.SqlClient;

public partial class Basic_Delete : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //넘겨져 온 번호 값 검사
        if (String.IsNullOrEmpty(Request["Num"]))
        {
            Response.Write("잘못된 요청입니다");
            Response.End();
        }
        else
        {
            //레이블에 넘겨져 온 번호 값 출력
            this.lblNum.Text = Request["Num"];
        }
    }
    protected void btnDelete_Click(object sender, EventArgs e)
    {
        if (IsPasswordCorrect())
        {
            SqlConnection con = new SqlConnection
                                  (ConfigurationManager.ConnectionStrings
                                   ["ConnectionString"].ConnectionString);
            con.Open();

            SqlCommand cmd = new SqlCommand("DeleteBasic", con);
            
            cmd.CommandType = CommandType.StoredProcedure;

            //파라미터:List.aspx에서 넘겨운 쿼리 스트링값
            cmd.Parameters.AddWithValue("@Num", Request["Num"]);
            cmd.Parameters.AddWithValue("@Password", txtPassword.Text);

            cmd.ExecuteNonQuery(); //삭제

            //삭제 후 리스트로 이동
            Response.Redirect("List.aspx");
        }
        else
     {
            this.lblError.Text = "암호가 틀립니다";   
     }
    }

    //번호와 암호가 맞으면 참을 반환, 그렇지 않으면 거짓을 반환
    private bool IsPasswordCorrect()
    {
        bool result = false;
        SqlConnection con = new SqlConnection
                             (ConfigurationManager.ConnectionStrings 
                              ["ConnectionString"].ConnectionString);
        con.Open();

        SqlCommand cmd = new SqlCommand(
            "Select *From Basic Where Num =
                                                   @Num And Password = @Password", con);

        cmd.Parameters.AddWithValue("@Num", Request["Num"]);
        cmd.Parameters.AddWithValue("@Password", txtPassword.Text);
       
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read()) //데이터가 읽혀진다면, 번호와 암호가 맞음
        {
            result = true;

        }
        return result;

    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        //취소버튼 클릭시 뒤로(상세 보기 페이지로 이동)
        Response.Redirect("View.aspx?Num=" + Request["Num"]);
    }
}







반응형
posted by Magic_kit
2009. 10. 8. 01:04 .Net Project/ASP.NET 3.5 Sp1
반응형
 Basic Modify.aspx 디자인 모드                                                                         



- 번호, 이메일, 홈페이지, 제목, 내용 의 내용을 비밀번호 입력 후 일치하면 다음과 같이 
   삭제 완료 됩니다.(비밀번호 일치 하지 않으면 "암호가 틀립니다" 라는 메시지 출력)

- 수정 버튼을 클릭하면 수정을 완료 할 수 있습니다. 

- 리스트 버튼 클릭시 (수정완료) 화면 List.aspx로 이동 하게 되어 있습니다. 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Modify.aspx.cs" Inherits="Basic_Modify" ValidateRequest="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>수정 : Modify</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h3>글 수정</h3>
   
    번호
    <asp:Label ID="lblNum" runat="server" Text=""></asp:Label>
    
    이름:
    <asp:TextBox ID="txtName" runat="server"></asp:TextBox><br />
  
    이메일:
    <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox><br />
  
    홈페이지 :
    <asp:TextBox ID="txtHomepage" runat="server"></asp:TextBox><br />
  
    제목 :
    <asp:TextBox ID="txtTitle" runat="server"></asp:TextBox><br />
  
    내용 :
    <asp:TextBox ID="txtContent" runat="server"
     TextMode="MultiLine" Columns="20" Rows="5"></asp:TextBox><br />
   
     인코딩 : <br />
    <asp:RadioButtonList ID="lstEncoding" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Flow">
        <asp:ListItem Selected="True">Text</asp:ListItem>
        <asp:ListItem>HTML</asp:ListItem>
        <asp:ListItem>Mixed</asp:ListItem>                
    </asp:RadioButtonList><br />
   
  
    비밀번호 :
    <asp:TextBox ID="txtPassword" runat="server"
            TextMode="Password"></asp:TextBox><br />
   
    <asp:Button ID="btnModify" runat="server" Text="수정"
            onclick="btnWrite_Click" /> &nbsp
   
    <asp:Button ID="btnList" runat="server" Text="리스트"
            onclick="btnList_Click" />&nbsp;
  
    <asp:Label ID="lblError" runat="server" Text="Label" 
            ForeColor="Red"></asp:Label> <br />    
    </div>
    </form>
</body>
</html>




 Basic Modify.aspx.Cs 컨트롤 이벤트 모드  

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

public partial class Basic_Modify : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //넘겨져 온 번호 값 검사
        if (String.IsNullOrEmpty(Request["Num"]))
        {
            Response.Write("잘못된 요청입니다");
            Response.End();
  
        }
        else
        {
            //반드시 수정페이지는 처음 로드시에만 이전 데이터 읽어오자
            if (!Page.IsPostBack)
            {
                DisplayData(); //호출
            }
        }
   }

    private void DisplayData()
    {
        //VIew.aspx
        SqlConnection con = new SqlConnection
                             (ConfigurationManager.ConnectionStrings
                             ["ConnectionString"].ConnectionString);
        con.Open();

        SqlCommand cmd = new SqlCommand("ViewBasic", con);
        cmd.CommandType = CommandType.StoredProcedure;

        //파라미터 추가 : List.aspx에서 넘겨온 쿼리 스트링 값
        cmd.Parameters.AddWithValue("@Num", Request["Num"]);
        

        //상세보기 :DataReader
        SqlDataReader dr = cmd.ExecuteReader();

        //바인딩 : 각각의 컨트롤
        while (dr.Read())
        {
            this.lblNum.Text = dr["Num"].ToString();
            this.txtName.Text = dr["Name"].ToString();
            this.txtEmail.Text = dr["Email"].ToString();
            this.txtHomepage.Text = dr["Homepage"].ToString();
            this.txtTitle.Text = dr["Title"].ToString();
          
            this.txtContent.Text = dr["Content"].ToString();
          
            //인코딩에 따른 Content 출력 3가지 방법
            string encoding = dr["Encoding"].ToString(); //Text/Html
            if (encoding == "HTML")
            {
                this.lstEncoding.SelectedIndex = 1;
            }
            else if (encoding == "Mixed") //태그는 실행하되, 엔터는 처리
            {
                this.lstEncoding.SelectedIndex = 2;
            }
        }
        dr.Close();

        con.Close();       
       
    }

    //수정
    protected void btnWrite_Click(object sender, EventArgs e)
    {
        //Write.aspx 페이지와 동일한 패턴
        if (IsPasswordCorrect())
        {
            SqlConnection objcon = new SqlConnection
                 (ConfigurationManager.ConnectionStrings
                 ["ConnectionString"].ConnectionString);


            SqlCommand objCmd = new SqlCommand("ModifyBasic", objcon);
           
            objCmd.CommandType = CommandType.StoredProcedure;

            objCmd.Parameters.AddWithValue("@Name", txtName.Text);
            objCmd.Parameters.AddWithValue("@Email", txtEmail.Text);
            objCmd.Parameters.AddWithValue("@Title", txtTitle.Text);
            objCmd.Parameters.AddWithValue("@ModifyIP",
                                                               Request.UserHostAddress);
           
            objCmd.Parameters.AddWithValue("@Content", txtContent.Text);
            objCmd.Parameters.AddWithValue("@Encoding",
                                                                 lstEncoding.SelectedValue);
            objCmd.Parameters.AddWithValue("@Homepage", txtHomepage.Text);
            objCmd.Parameters.AddWithValue("@Num", lblNum.Text);
            objCmd.Parameters.AddWithValue("@Password", txtPassword.Text);

            objcon.Open();
            objCmd.ExecuteNonQuery();
            objcon.Close();

            Response.Redirect
            ("View.aspx?Num=" + Request["Num"]); //상세보기로 가서 수정 확인 
        }
        else
        {
            lblError.Text = "암호가 틀립니다";
        }
    }
    private bool IsPasswordCorrect()
    {
        bool result = false;
        SqlConnection con = new SqlConnection
             (ConfigurationManager.ConnectionStrings
             ["ConnectionString"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand(
            "Select *From Basic Where Num =
                         @Num And Password = @Password", con);

        cmd.Parameters.AddWithValue("@Num", Request["Num"]);
        cmd.Parameters.AddWithValue("@Password", txtPassword.Text);

        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read()) //데이터가 읽혀진다면, 번호와 암호가 맞음
        {
            result = true; 
        }
        return result;
    }
    protected void btnList_Click(object sender, EventArgs e)
    {
        Response.Redirect("List.aspx");
    }
}    





반응형
posted by Magic_kit