DataTable 클래스는 메모리 내 데이터의 테이블 한 개를 나타낸다.
DataTable은 ADO.NET 라이브러리의 중심 개체이다. DataTable을 사용하는 다른 개체에는 DataSet 및 DataView가 포함된다.
DataTable 개체에 액세스할 때는 조건에 따라 대/소문자가 구분된다. 예를 들어 두 DataTable의 이름이 각각 'mydatatable'과 'Mydatatable'인 경우에는 두 테이블 중 하나를 검색하는 데 사용되는 문자열에서 대/소문자를 구분한다.
그러나 'mydatatable'은 있고 'Mydatatable'은 없는 경우에는 검색 문자열에서 대/소문자를 구분하지 않는다. TableName 속성 값은 동일하지만 Namespace 속성 값은 다른 두 개의 DataTable 개체가 DataSet에 포함할 수 있다.
프로그래밍 방식으로 DataTable을 만드는 경우 Columns 속성을 통해 액세스하는 DataColumnCollection에 DataColumn 개체를 추가하여 스키마를 먼저 정의해야 한다.
DataTable에 행을 추가하려면 먼저 NewRow 메서드를 사용하여 새 DataRow 개체를 반환해야 한다. NewRow 메서드는 테이블의 DataColumnCollection에서 정의된 DataTable의 스키마가 있는 행을 반환한다. DataTable이 저장할 수 있는 최대 행 개수는 16,777,216 이다.
테이블이 변경될 때 이를 확인하는 데 사용할 수 있는 여러 DataTable 이벤트가 있다. 이러한 이벤트에는 RowChanged, RowChanging, RowDeleting 및 RowDeleted가 있다.
DataTable에 행을 추가하는 방법
Dim dt As New DataTable
Dim newRow As DataRow = dt.NewRow
newRow.Item(0) = "테스트"
dt.Rows.Add(newRow)
DataTable에 임의의 열에 행을 추가하는 방법
DataTable을 For 문으로 돌리면서 행을 추가하는 방법을 생각하기 쉬운데 For 문으로 돌리면서 행을 추가하면 오류가 발생한다. 다음과 같은 코드는 오류를 발생시킨다.
Dim rowCount As Integer = 0
Dim count As Integer = 0
For Each r As DataRow In MyDataTable.Rows
If (count Mod 2 = 0) Then
Dim newRow as DataRow
newRow.Item(0) = "두 줄에 한 행씩 삽입합니다"
MyDataTable.Rows.InsertAt(newRow, Rowcount)
RowCount += 1
End If
RowCount += 1
count += 1
Next
위와 같은 방법이 안되기 때문에 다음과 같은 방법으로 처리한다.
Dim rowCount As Integer = 0
Dim count As Integer = 0
For i = 0 To MyDataTable.Rows.Count
if( i Mod 2 = 0) then
Dim newRow as DataRow
newRow.Item(0) = "두 줄에 한 행씩 삽입한다."
MyDataTable.Rows.InsertAt(newRow, Rowcount)
RowCount += 1
End If
RowCount + 1
Next
'VB.NET 2008 > VB - 데이터 그리드 뷰' 카테고리의 다른 글
데이터그리드뷰의 모양 (0) | 2012.09.24 |
---|---|
데이터 표시 방법 (0) | 2012.09.23 |
DataGridView의 DataGridViewCheckBoxColumn의 체크값 확인 이벤트 (0) | 2012.06.14 |
DataGridView의 컬럼 및 셀 꾸미기 (0) | 2012.06.05 |
DataGridView - 열 정렬 모드 (0) | 2011.04.26 |