ASP.NET

26.ADO.NET - SqlCommandBuilder

Godffs 2009. 9. 30. 18:35
반응형
SqlCommandBuilder  :  연결된 SQL Server 데이터베이스에서 DataSet의 변경 내용을 조정하는데
                                  사용되는 단일 테이블 명령을 자동으로 생성.  이 클래스는 상속될 수 없음

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]



반응형