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


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

 

<!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:Button ID="btnConnect" runat="server" Text="연결"

            onclick="btnConnect_Click" />

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

    </div>

    </form>

</body>

</html>

 










=====================================================================================


 

==> [FrmSqlError.aspx.cs]


using System;

using System.Data;

using System.Data.SqlClient; //

 

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

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

    protected void btnConnect_Click(object sender, EventArgs e)

    {

        // 커넥션

        SqlConnection con = new SqlConnection();

        con.ConnectionString = "server=.;database=Market;uid=Market;pwd=670440;";

       

 

        // 커맨드

        SqlCommand cmd = new SqlCommand("Select * From Categories", con); // 생성자 사용

        cmd.CommandType = CommandType.Text;

 

        // 데이터 리더

        try

        {

            con.Open(); // DB오픈과 동시에

            SqlDataReader dr = cmd.ExecuteReader(); // 명령어 실행과 동시에

            con.Close(); // 닫기

        }

        catch (SqlException se) //[1] 에러 정보 담는 그릇 : SqlException

        {

            SqlErrorCollection sec = se.Errors; //[2] 에러 담는 컬렉션(에러들을 묶어서 관리한다.)

            // 에러를 묶어서 출력

            string msg = "";

            foreach (SqlError item in sec) //[3] 에러 하나를 담는 클래스

            {

                msg += item.Message + "<br />"; // .Message : 에러 메시지

            }

            this.lblError.Text = msg;

        }

    }

}

 

 

// SqlException 클래스 - SQL Server 가 경고나 오류를 반환하면 throw되는 예외입니다. 이 클래스는 상속될 수 없습니다.

 

// SqlErrorCollection 클래스 - .NET Framework Data Provider for SQL Server에서 생성된 오류를 모두 수집합니다. 이 클래스는 상속될 수 없습니다.

 

// SqlError 클래스 - SQL Server가 반환한 경고나 오류와 관련된 정보를 수집합니다.

 

 

 


=====================================================================================


 

[실행결과]


--> 위의 [FrmSqlError.aspx.cs]코드 내의 "커넥션"부분에서 "연결문자열"중 "Password"부분에 잘못된 값을 넣은 후, 웹페이지에서 '연결'버튼을 누르면 아래그림에서처럼 레이블에 "사용자 'Market'이(가) 로그인하지 못했습니다."라고 텍스트가 출력되며 '에러처리'된다.










Posted by holland14
: