Blog Content

    티스토리 뷰

    26.ADO.NET - SqlCommandBuilder

    반응형
    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]



    반응형

    '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