(교재실습) WinCommandBuilder(SqlCommandBuilder 클래스)
.NET프로그래밍/ADO.NET 2009. 9. 30. 14:58 |* "윈폼"에서 '새 프로젝트 만들기'로 프로젝트 실행
==> Form1.cs [디자인]
-------------------------------------------------------------------------------------
==> Form1.cs 소스
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 WinCommandBuilder
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private SqlDataAdapter da;
private DataTable dt;
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(
"server=.;database=AddressBook;uid=AddressBook;pwd=6750440;");
SqlCommand cmd = new SqlCommand("Select * From AddressBook", con);
da = new SqlDataAdapter(cmd);
dt = new DataTable("AddressBook");
// Select를 기준으로 Insert, Update, Delete문 자동 생성 : PK(Primary Key)가 있어야 함
SqlCommandBuilder scb = new SqlCommandBuilder(da);
da.Fill(dt);
this.dataGridView1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
da.Update(dt); // CRUD 실행
}
}
}
// SqlCommandBuilder 클래스 - 연결된 SQL Server 데이터베이스에서 DataSet의 변경 내용을 조정하는 데 사용되는 단일 테이블 명령을 자동으로 생성합니다. 이 클래스는 상속될 수 없습니다.
// "SqlCommandBuilder클래스"사용은 10만건 이하의 비교적 적은 데이터일 때 사용한다.(왜냐면 성능때문에...)
// SqlDataAdapter클래스를 SqlCommandBuilder클래스에 담아서 넣으면 Select문을 기준으로 입력(Insert) / 수정(Update) / 삭제(Delete)할 수 있다.
// SqlCommandBuilder클래스를 사용해서 SqlDataAdapter클래스에서의 긴 코드를 짧게 줄여쓸 수 있다.
-------------------------------------------------------------------------------------
[실행결과]
"SqlCommandBuilder 클래스"를 사용하여 실행한 결과는 "SqlDataAdapter 클래스"를 사용하여 실행한 결과와 같다. 즉,"SqlCommandBuilder 클래스"는 "SqlDataAdapter 클래스"와 동일한 기능을 한다.
--> 데이터 변경 실행 전 [SQL Server]의 [dbo.AddressBook]테이블의 화면
--> "폼"의 "dataGridView"에서 데이터를 '티파니'에서 '이효리'로 수정하고 "변경내역 반영하기"버튼을 눌러 데이터를 변경
--> 데이터 변경 실행 후 [SQL Server]의 [dbo.AddressBook]테이블의 화면.(첫번째 레코드가 '티파니'에서 '이효리'로 변경된 것을 볼 수 있다.)
'.NET프로그래밍 > ADO.NET' 카테고리의 다른 글
LINQ to DataSet (0) | 2009.09.30 |
---|---|
WinBinding(SqlDataAdapter클래스 내용에서 보충) (0) | 2009.09.30 |
(교재실습) (DataAdapter 연습) (0) | 2009.09.30 |
25. 관계와 제약조건걸기(DataRelation 클래스와 Constraints) (0) | 2009.09.30 |
(교재실습) MakeDataSet(DateSet연습) (0) | 2009.09.30 |