블로그 이미지
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. 27. 02:34 .Net Project/ASP.NET 3.5 Sp1
반응형

- 사용자
정의 템플릿을 사용하여 데이터 소스의 값을 표시한다.

- ListView 컨트롤을 사용하여 레코드를 선택, 정렬, 삭제, 편집 삽입할 있다.

- ListView 컨트롤은 데이터 소스의 값을 표시하는 사용된다. 컨트롤은 GridView 
   컨트롤과
 비슷하지만 필드 대신 사용자 정의 탬플릿을 사용하여 데이터를 표시한다는 점에서
   차이가
있다. 고유한 템플릿을 만들면 데이터가 표시되는 방식을 융통성 있게 제어할 있다.

 

-  ListView 컨트롤이 지원하는 기능

·         SqlDataSource, LinqDataSource ObjectDataSource 같은 데이터 소스 컨트롤에 바인딩할 있는 기능

·         사용자 정의 템플릿 스타일을 통해 모양을 사용자 지정할 있는 기능

·         기본 제공 정렬 기능

·         기본 제공 업데이트 삭제 기능

·         기본 제공 삽입 기능

·         DataPager 컨트롤을 사용한 페이징 기능

·         기본 제공 항목 선택 기능

·         속성을 동적으로 설정하거나 이벤트를 처리하는 등의 작업을 수행하기 위해 ListView 개체 모델에 프로그래밍 방식으로 액세스할 있는 기능

ListView.Aspx 사용한 데이터 바인딩 하는 방법
 

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

 

<!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>리스트뷰 컨트롤</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>   

        리스트뷰 컨트롤을 사용해서 데이터 출력<br />

        <br />

        <asp:ListView ID="ListView1" runat="server"
           
 DataKeyNames="Num" DataSourceID="SqlDataSource1">

            <LayoutTemplate>

                <table border="1">

                    <tr><td>번호</td><td>이름</td></tr>

                    <tr id="itemPlaceholder" runat="server"></tr>

                </table>   

                <asp:DataPager ID="DataPager1" runat="server" PageSize="2">

                    <Fields>

                        <asp:NumericPagerField ButtonCount="2"

                            PreviousPageText="이전" NextPageText="다음" />

                    </Fields>

                </asp:DataPager>

            </LayoutTemplate>

        <ItemTemplate>

            <tr>

                <td><%# Eval("Num") %></td><td><%# Eval("Name") %></td>

            </tr>

        </ItemTemplate>

        </asp:ListView>
   

        <asp:SqlDataSource ID="SqlDataSource1" runat="server"

            ConnectionString="<%$ ConnectionStrings:ConnectionString %>"

            SelectCommand=
                    "SELECT * FROM [Memos] ORDER BY [Num] DESC, [Name]">

        </asp:SqlDataSource>  

    </div>   

    </form>

</body>

</html> 







반응형
posted by Magic_kit
2009. 10. 27. 02:33 .Net Project/ASP.NET 3.5 Sp1
반응형

ADO.NET 공통적인 작업들..
- 데이터를 읽고, 삽입하고, 갱신하고, 삭제 기능 
- 데이터 읽기 DataReader 클래스 사용
   1. SqlConnection 클래스와 SqlCommand 클래스 인스턴스 생성

   2. 데이터 베이스 연결하기전에 "ConnectionString" 연결문자열 데이터 베이스로부터 특정 
       데이터를 읽어오기 위해서 SqlCommand개체에 SQL 질의 명령을 대입 

   3. Con.Open() 데이터 베이스가 열리면, DataReader 개체를 생성한다 
  
   4. 데이터를 읽으면  MyReader.Read 메서드에 루프를 들면서 DataReader 개체에 있는 
       데이터 가져온다.
  
   5. List<string> 개체를 생성한 다음 데이터 베이스가 닫히면 con.Close() 이면, 
       이 개체를 GetCompanyNameData 메서드에서 반환 완료 한다. 

ADO.NET 공통적인 작업들..
- 데이터 삽입
   1. 데이터는 XML 웹 서비스로 전달되거나 특정 클래스의 로직에 따라 생성 
  
   2. 데이터 삽입 동작은 cmd.ExcuteNonQuery 메서드 초기화 된다
       이 메서드는 어떤 사항도 반환하지 않을 대 데이터에 특정 질의 명령어 실행 완료한다.

-  데이터 갱신 
    데이터 베이스에 레코드 하나를 새로 삽입할 수 있을 뿐만 아니라 기존 테이블에 있는 데이터
    의 행들은 빈번하게 갱신 하도록 한다

- 데이터 삭제 
   Int 변수인 RecordsAffected에 ExecuteNonQuery 메서드 대입하면
   삭제된 레코드 수를 반환하게 된다.

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

 

<!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>ADO.NET</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        ADO.NET 사용해서 입력<br />

        <br />

        이름 :<asp:TextBox ID="txtName" runat="server"></asp:TextBox>

        <br />

        이메일 :

        <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>

        <br />

        <asp:Button ID="btnAdd" runat="server" Text="입력"
             onclick
="btnAdd_Click" />

    </div>

    </form>

</body>

</html> 


FrmADOInsert.Cs 
using System;

using System.Data.SqlClient;

using System.Configuration;

using System.Data;

 

public partial class FrmAdoInsert : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

       //Empty 

    }

    protected void btnAdd_Click(object sender, EventArgs e)

    {

        SqlConnection con = new SqlConnection(

            ConfigurationManager.ConnectionStrings
                                 [
"ConnectionString"].ConnectionString);

        con.Open();

 

        SqlCommand cmd = new SqlCommand();

        cmd.Connection = con;

        cmd.CommandText = 
                   "Insert Into Memos Values(@Name, @Email, @PostIP)";


       
cmd.CommandType =
CommandType.Text;

        cmd.Parameters.AddWithValue("@Name", txtName.Text);

        cmd.Parameters.AddWithValue("@Email", txtEmail.Text);

        cmd.Parameters.AddWithValue("@PostIP", Request.UserHostAddress);

 

        cmd.ExecuteNonQuery(); // 저장

 

        // 자신으로 다시 이동 : 새로고침과 동일

        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]);

 

        con.Close();

    }

} 







반응형
posted by Magic_kit
2009. 10. 27. 02:32 .Net Project/ASP.NET 3.5 Sp1
반응형

Common 프로젝트 안에 Reply.Common 클래스 라이브러리 안에 Border.CS 클래스 파일 생성

GetNewImg(), ConvertContentByEncoding()
메서드 정의

GetNewImg() : 24 시간 내의 글이면 New 이미지 붙이기

ConvertContentByEncoding() : 인코딩 방식에 따른 Content 문자열 변환

 Border.Cs

using System;


//
한번 이상 사용되는 코드는 메서드

// Common 구현

namespace Reply.Common

{

    public class Board

    {

        /// <summary>

        /// 날짜값 받아서 24시간내의 글이면 New 이미지 붙이기

        /// </summary>

        /// Reply.Common.Board.GetNewImg 써서 사용

        public static string GetNewImg(object postDate)

        {

            TimeSpan ts = DateTime.Now - Convert.ToDateTime(postDate);

            string result = "";

            if (ts.TotalHours < 24) // 24시간 내의 글이면...

            {

                result = "<img src='images/new.gif'/>";

            }

            return result;

        }

 

        /// <summary>

        /// 인코딩 방식에 따른 Content 문자열 반환 : Text/Mixed/HTML

        /// </summary>

        /// <param name="content"></param>

        /// <param name="encoding"></param>

        /// <returns></returns>

        public static string ConvertContentByEncoding
                                    (
string content, string encoding)

        {

            string result = String.Empty;

            encoding = encoding.ToLower(); // 소문자로 비교

            if (encoding == "Text") // 태그 실행 방지/소스 그대로

            {

                result = content

                            .Replace("&", "&amp;")

                            .Replace("<", "&lt;")

                            .Replace(">", "&gt;")

                            .Replace("\r\n", "<br />")

                            .Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");

            }

            else if (encoding == "Mixed") // 태그 실행

            {

                result = content.Replace("\r\n", "<br />");

            }

            else // HTML 표시

            {

                result = content;

            }

            return result;

        }

    }

}







반응형
posted by Magic_kit
2009. 10. 27. 02:32 .Net Project/ASP.NET 3.5 Sp1
반응형
ReplyDelete.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Delete.aspx.cs"
         Inherits
="Reply_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></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <h3> 삭제</h3>

        <div>

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

             글을 삭제하시겠습니까?<br />

            암호 :

            <asp:TextBox ID="txtPassword" runat="server"
                 TextMode
="Password"></asp:TextBox>

            <asp:Button ID="btnDelete" runat="server" Text="삭제"

                onclick="btnDelete_Click1" />

            <br />

            <asp:Label ID="lblError" runat="server"
                 ForeColor
="Red"></asp:Label>

        </div>

    </div>

    </form>

</body>

</html>


ReplyDelete.Cs 
using System;

using Reply.Bsl;

using Reply.Entity;

 

public partial class Reply_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_Click1(object sender, EventArgs e)

    {

        ReplyBiz rb = new ReplyBiz(); // 트랜잭션 처리 클래스에서 객체 생성

 

        ReplyEntity re = rb.SelectReplyByNum
                         (
Convert.ToInt32(Request["Num"]));

 

        int result = rb.DeleteReply
                     (
Convert.ToInt32(Request["Num"]), txtPassword.Text);

        if (result == -1)

        {

            lblError.Text = "암호가 틀립니다.";

        }

        else

        {

            Response.Redirect("List.aspx");

        }

    }

} 







반응형
posted by Magic_kit