사용되는 단일 테이블 명령을 자동으로 생성. 이 클래스는 상속될 수 없음
SqlDataAdapter는 SQL Server의 관련 인스턴스를 사용하여 DataSet의 변경을 조정하는 데 필요한
T-SQL문을 자동으로 생성. 그 러나 SqlDataAdapter의 SelectCommand속성을 설정하면,
SqlCommandBuilder 개체를 만들어 단일 테이블 업데이트를 위한 T-SQL문을 자동으로
생성 가능. 그런 다음 설정하지 않은 추가 T-SQL문이 SqlCommandBuilder에 의해 생성
데이터 베이스 추가 |
Create Table AddressBook ( Num int identity(1,1) Not Null Primary Key, Name char(10), Mobile varchar(20), Email varchar(50) ) Insert Into AddressBook Values('한라산', '123-123', 'han@com'); Insert Into AddressBook Values('밷구산', '321-321', 'back@com'); Insert Into AddressBook Values('금강산', '111-222', 'Gold@com');
DB : AddressBook, UID : AddressBook, PWD : 12345
|
Form1.Designer.cs |
[그림26-1] private
System.Windows.Forms.DataGridView
dataGridView1; private System.Windows.Forms.Button button1; |
Form1.cs |
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=WINDOWS-XP\\SQLSERVER;database=AddressBook;uid=AddressBook;pwd=12345;"); SqlCommand
cmd = new SqlCommand("Select
* From AddressBook", con); da = new SqlDataAdapter(cmd); dt = new DataTable("AddressBook"); // Select를 기준으로 Insert, Update, Delete문 자동 생성 : PK가 있어야 함 SqlCommandBuilder
scb = new SqlCommandBuilder(da); da.Fill(dt); // DataAdapter의 Fill()을 사용해서 DataTable을 채우기 this.dataGridView1.DataSource
= dt;
}
private void button1_Click(object sender, EventArgs
e)
{ da.Update(dt); // CRUD 실행
}
} } |
결과화면 |
[그림26-2] |
'ASP.NET' 카테고리의 다른 글
28.ADO.NET - Linq To DataSet (0) | 2009.09.30 |
---|---|
27.ADO.NET - Binding (0) | 2009.09.30 |
25.ADO.NET - DataAdapter (0) | 2009.09.30 |
24.ADO.NET - CommandTest (0) | 2009.09.30 |
23.ADO.NET - ConnectionEvent (0) | 2009.09.30 |
Comments