본문 바로가기

개발 노트/닷넷 프레임워크 수업 (2015-04 ~ 2015-08)

ADO.NET 데이터베이스 연동

반응형

ASP.NET에서 서버 데이터베이스 연동하는 방법 

1) 비연동적 방법

2) 연동적 방법

아래 주석으로 설명!!

데이터베이스 연결링크!! ->

연결링크 마지막 password 의 **** 들은 진짜 password를 입력해야 한다.


//<--.cs file-->

//===============================================================================

// ADO.NET 

// - 데이터베이스에 연결 처리하기 위한 클래스들의 모음

// - System.Data의 클래스들 을 ADO.NET이라 부른다

// - 주요 클래스 !!

// 1) SQLDataConnection : DB에 연결을 수행하는 객체 !!

// 2) SQLCommand : Connection객체가 연결한 DB에 명령을 수행하는 객체 !!

// 3) SQLDataAdapter : Command객체의 명령을 수행하고 결과값을 받아들이기 위한 객체 !!

// 4) DataSet : DB를 추상화한 클래스 !! --> table, 제약조건들을 포함하는 클래스!!

//      --> db의 결과값을 저장하는 역할 !!

//===============================================================================


using System.Data; // DB관련 class들

using System.Data.SqlClient; // MS-SQL 전용 클래스 !!

using System.Data.OleDb;     // MS-SQL을 제외한 클래스들(oracle)


using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;



namespace ADOCRUD

{

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

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            //DB 연결 : 비연결지향적인 방법

            SqlConnection conn = new SqlConnection("데이터베이스 연결링크!!");

            conn.Open();

            SqlCommand cmd = new SqlCommand("select * from bit_studentinfo", conn);

            SqlDataAdapter Adapter = new SqlDataAdapter(cmd);

            DataSet ds = new DataSet();

            // Fill 메소드 : dataset 객체에 결과값을 채워온다.

            Adapter.Fill(ds);


            this.GridView1.DataSource = ds;

            this.GridView1.DataBind();




            conn.Close();

        }

        // ADO.NET 2가지 DB접근방법을 제공 !!

        // 1) 연결지향 접근

        // 2) 비연결지향 접근


        protected void btn_login_Click(object sender, EventArgs e)

        { // 연결지향적인 방법!! : SqlCommand

            SqlConnection conn = new SqlConnection

                ("데이터베이스 연결링크!!");//데이터베이스-> 속성->

            conn.Open();

            SqlCommand cmd = new SqlCommand("select RPos from Bit_Room", conn);


            SqlDataReader reader = cmd.ExecuteReader(); // 어떤 행에대한 포인터?(주소값?)같은 것을 가져옴, 커서?

            // 읽어오기 !

            while(reader.Read())

            {

                ListBox1.Items.Add( reader["RPos"].ToString());

            }

            

            

            //cmd.ExecuteScalar(); // 단일값 반환

            //cmd.ExecuteNonQuery(); // 반환값이 없는 SQL


            conn.Close();

        }

// ExecuteScalar() 쓰는방법

protected void btn_login_Click(object sender, EventArgs e)

        {

            SqlConnection conn = new SqlConnection

                ("Data Source=bhbd1mdmq7.database.windows.net;Initial Catalog=JongSeokDB;Persist Security Info=True;User ID=JongSeok;Password=q1233255!");

            conn.Open();

            

            string sql = @"select Count(*)

                            from bit_studentinfo

                            where sid = '"+ tb_id.Text+"' and spassword = '"+tb_pw.Text+"'";

            

            SqlCommand cmd = new SqlCommand(sql, conn);

            int Count = int.Parse(cmd.ExecuteScalar().ToString());

            if (Count == 0)

            {

                lbl_ok.Text = "로그인 실패";

            }

            else

                lbl_ok.Text = "로그인 성공";

            


        }

    }

}

//<--.aspx-->

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ADOCRUD.Default" %>


<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <title></title>

</head>

<body>

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

    <div>

        <asp:GridView ID="GridView1" runat="server" Height="124px" Width="627px"></asp:GridView>

        <asp:ListBox ID="ListBox1" runat="server"></asp:ListBox>

        <asp:Button ID="btn_room" runat="server" Text="Room" OnClick="btn_room_Click"/>

        <br />

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

        <br />

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

        <asp:Button ID="btn_login" runat="server" Text="LOGIN" OnClick="btn_login_Click" />

        <br />

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

        <br />

    </div>

    </form>

</body>

</html>

반응형