.Net Project/ADO.NET 3.5
18장 ADO.NET 연결 이벤트 (Connection&Close)
Magic_kit
2009. 9. 30. 12:20
DataConnection
- 개체에 액세스하려면 양식 서식 파일과 연결돤 DataConnectionCollection 개체를 사용
- DataConnectionCollection 개체에 액세스하려면 XMLForm 클래스의 DataConnection |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ConnectionEvent
{
public partial class Form1 : Form
{
//전역변수로 선언
private SqlConnection con;
public Form1()
{
InitializeComponent();
}
private void btnConnect_Click(object sender, EventArgs e)
{
try
{
con.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnClose_Click(object sender, EventArgs e)
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
private void Form1_Load(object sender, EventArgs e)
{
con = new SqlConnection();
con.ConnectionString =
"server=.;database=Market;uid=Market;pwd=1234;";
con.StateChange += new
StateChangeEventHandler(con_StateChange);
con.InfoMessage += new
SqlInfoMessageEventHandler(con_InfoMessage);
}
StateChange
- 이벤드는 이벤트 상태가 닫힘에서 열림으로 변경되거나 열림에서
닫힘으로 변경되면 발생합니다.
- connection 상태가 바뀌면 StateChange 이벤트 발생하면
connection의 상태 변화를 확인할 수 있도록
StateChangeEvent를 받습니다 |
InfoMessage
- 정보 메시지가 데이터 소스에서 반환시 발생하며,
정보 메시지는 예외가 발생하지 않는 데이터 소스의 메시지 입니다.
- 데이터 소스에서 경고 및 정보 메싲를 검색 가능
- 데이터 소스에서 반환된 오휴의 심각도 수준이 11~16에 해당하면
예외가 발생
- InfoMessage 이벤트 사용하여 캡쳐 될 수 있습니다 |
void con_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
listBox1.Items.Add(e.Message);
}
void con_StateChange(object sender, StateChangeEventArgs e)
{
string Mes;
Mes = string.Format("원래 상태 : {0}, 현재 상태 {1}",
e.OriginalState, e.CurrentState);
listBox1.Items.Add(Mes);
}
private void Form1_FormClosed
(object sender, FormClosedEventArgs e)
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
}
} |