==> [FrmADONET.aspx] 소스 및 디자인



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

 

<!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>

   

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

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

        <br />

        <asp:GridView ID="ctlCategoryList" runat="server">

        </asp:GridView>

        <asp:Label ID="lblDisplay" runat="server" Text=""></asp:Label>

    </div>

    </form>

</body>

</html>

 











-------------------------------------------------------------------------------------




==> [FrmADONET.aspx.cs]




using System;

using System.Data;

using System.Data.SqlClient;

using System.Configuration; //[0]

 

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

{

    protected void Page_Load(object sender, EventArgs e)

    {

        //[1] 페이지 로드시 모든 카테고리 리스트 출력

        if (!Page.IsPostBack) // !Page.IsPostBack - 페이지가 깜빡거릴때...

        {

            DisplayData();

        }

    }

 

    //출력

    private void DisplayData()

    {

        SqlConnection con = new SqlConnection(

            "Data Source=.;Initial Catalog=Market;User ID=Market;Password=6750440;");

        con.Open();

 

        SqlCommand cmd = new SqlCommand("Select * From Categories", con);

        cmd.CommandType = CommandType.Text;

 

        //[!] ExecuteReader() 메서드의 결과값을 DataReader 개체에 담기

        SqlDataReader dr = cmd.ExecuteReader();

 

        // GridView에 바인딩

        this.ctlCategoryList.DataSource = dr; // DataReader, DataSet, List<T> 등이 담김

        this.ctlCategoryList.DataBind(); // 그러면, 알아서 모양 만들어 출력

 

        dr.Close(); // 데이터리더도 반드시 Close()해야 함...

 

        con.Close();

    }

 

    // 입력/수정/삭제

    protected void btnAdd_Click(object sender, EventArgs e)

    {

        //[0] 변수 선언부

        string strCategoryName = txtCategoryName.Text.Trim();

 

        //[1]커넥션

        SqlConnection objCon = new SqlConnection();

        objCon.ConnectionString = //"server=.;database=Market;uid=Market;pwd=6750440;";

            ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

        objCon.Open();

 

        //[2] 커맨드

        SqlCommand objCmd = new SqlCommand();

        objCmd.Connection = objCon; // 오픈될 커넥션 개체 지정

        objCmd.CommandText = String.Format(

            "Insert Categories(CategoryName) Values('{0}')", strCategoryName); // 명령어

        objCmd.CommandType = CommandType.Text; // 타입지정

 

        //[3] 실행 : ExecuteNonQuery(), ExecuteReader(), ExecuteScalar(), ExecuteDataSet()

        int rows = objCmd.ExecuteNonQuery(); // 모든 명령어 실행 <-> Select도 가능-Reader를 사용

        this.lblDisplay.Text = rows.ToString() + "개 입력되었습니다.";

 

        //[4] 마무리

        objCon.Close();

 

 

    }

}

 

 

 
-------------------------------------------------------------------------------------




[실행결과]


--> 아래그림에서 '텍스트박스'에 "자동차"를 입력하고 "카테고리입력"버튼을 누르면 GridView아래에 있는 레이블에 "1개 입력되었습니다."라는 텍스트가 출력된다.





--> [SQL Server]내의 [Market]데이터베이스 - [dbo.Categories]테이블을 '실행'버튼을 눌러 실행해보면, [dbo.Categories]테이블의 'CategoryID'가 20번째에 위의그림의 웹페이지에서 입력한 자료인 "자동차"가 저장된 것을 볼 수 있다.




--> 아래그림에서 웹페이지를 새로 열어보면 "GridView"에서도 'CategoryID'가 20번째에 "자동차"가 저장되어 있는 것을 볼 수 있다.







Posted by holland14
: