방법: 런타임에 Windows Forms DataGrid 컨트롤에 표시되는 데이터 변경
참고
DataGridView 컨트롤은 DataGrid 컨트롤을 대체하고 여기에 다른 기능을 추가하여 새로 도입된 컨트롤이지만 이전 버전과의 호환성 및 이후 사용 가능성을 고려하여 DataGrid 컨트롤을 계속 유지하도록 선택할 수 있습니다. 자세한 내용은 Windows Forms DataGridView 컨트롤과 DataGrid 컨트롤의 차이점을 참조하십시오.
디자인 타임 기능을 사용하여 Windows Forms DataGrid를 만든 후에는 런타임에 데이터 표에 있는 DataSet 개체의 요소를 동적으로 변경할 수 있습니다. 예를 들면 테이블의 개별 값을 변경하거나 DataGrid 컨트롤에 바인딩된 데이터 소스를 변경할 수 있습니다. 테이블의 개별 값은 DataGrid 컨트롤이 아니라 DataSet 개체를 통해 변경됩니다.
프로그래밍 방식으로 데이터를 변경하려면
DataSet 개체에서 특정 테이블을 지정하고 이 테이블에서 행과 필드를 지정한 다음, 셀을 새 값과 같도록 설정합니다.
참고
DataSet의 첫 번째 테이블 또는 테이블의 첫 번째 행을 지정하려면 0을 사용하십시오.
다음 예제에서는 Button1을 클릭하여 데이터 집합의 첫 번째 테이블에서 첫 번째 행의 두 번째 항목을 변경하는 방법을 보여 줍니다. DataSet(ds) 및 테이블(0 과 1)은 이전에 만든 것입니다.
Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ds.tables(0).rows(0)(1) = "NewEntry" End Sub
private void button1_Click(object sender, System.EventArgs e) { ds.Tables[0].Rows[0][1]="NewEntry"; }
private: void button1_Click(System::Object^ sender, System::EventArgs^ e) { dataSet1->Tables[0]->Rows[0][1] = "NewEntry"; }
(Visual C#, Visual C++) 폼의 생성자에 다음 코드를 배치하여 이벤트 처리기를 등록합니다.
this.button1.Click += new System.EventHandler(this.button1_Click);
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
런타임에 SetDataBinding 메서드를 사용하여 DataGrid 컨트롤을 다른 데이터 소스에 바인딩할 수 있습니다. 예를 들어 각각 서로 다른 데이터베이스에 연결된 ADO.NET 데이터 컨트롤이 여러 개 있을 수 있습니다.
프로그래밍 방식으로 DataSource를 변경하려면
SetDataBinding 메서드를 바인딩할 데이터 소스 및 테이블의 이름으로 설정합니다.
다음 예제에서는 SetDataBinding 메서드를 사용하여 데이터 소스를 Pubs 데이터베이스의 Authors 테이블에 연결된 ADO.NET 데이터 컨트롤(adoPubsAuthors)로 변경하는 방법을 보여 줍니다.
Private Sub ResetSource() DataGrid1.SetDataBinding(adoPubsAuthors, "Authors") End Sub
private void ResetSource() { DataGrid1.SetDataBinding(adoPubsAuthors, "Authors"); }
private: void ResetSource() { dataGrid1->SetDataBinding(adoPubsAuthors, "Authors"); }
참고 항목
작업
방법: Windows Forms DataGrid 컨트롤에서 열 삭제 또는 숨기기
방법: Windows Forms DataGrid 컨트롤에 테이블과 열 추가
방법: 데이터 소스에 Windows Forms DataGrid 컨트롤 바인딩