다음을 통해 공유


DataSet에 DataTable 추가(ADO.NET)

업데이트: November 2007

ADO.NET에서는 DataTable 개체를 만들어 기존 DataSet에 추가할 수 있습니다. 또한 PrimaryKeyUnique 속성을 사용하여 DataTable에 대한 제약 조건 정보를 설정할 수 있습니다.

예제

다음 예제에서는 DataSet을 구성하고 새 DataTable 개체를 DataSet에 추가한 다음 세 개의 DataColumn 개체를 해당 테이블에 추가합니다. 마지막으로 이 코드에서는 열 하나를 기본 키 열로 설정합니다.

Dim customerOrders As DataSet = New DataSet("CustomerOrders")

Dim ordersTable As DataTable = customerOrders.Tables.Add("Orders")

Dim pkOrderID As DataColumn = ordersTable.Columns.Add( _
    "OrderID", Type.GetType("System.Int32"))
ordersTable.Columns.Add("OrderQuantity", Type.GetType("System.Int32"))
ordersTable.Columns.Add("CompanyName", Type.GetType("System.String"))

ordersTable.PrimaryKey = New DataColumn() {pkOrderID}
DataSet customerOrders = new DataSet("CustomerOrders");

DataTable ordersTable = customerOrders.Tables.Add("Orders");

DataColumn pkOrderID = 
    ordersTable.Columns.Add("OrderID", typeof(Int32));
ordersTable.Columns.Add("OrderQuantity", typeof(Int32));
ordersTable.Columns.Add("CompanyName", typeof(string));

ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };

대/소문자 구분

이름은 같으나 대/소문자가 다른 두 개 이상의 테이블이나 관계가 하나의 DataSet에 존재할 수 있습니다. 이런 경우 테이블과 관계를 이름에 따라 참조할 때는 대/소문자가 구분됩니다. 예를 들어, DataSet?dataSetTable1table1 테이블이 있는 경우 Table1을 **dataSet.Tables["Table1"]**로, table1을 **dataSet.Tables["table1"]**로 참조할 수 있습니다. **dataSet.Tables["TABLE1"]**로 두 테이블 중 하나를 참조하면 예외가 발생합니다.

특별한 이름의 테이블이나 관계가 하나만 있으면 대/소문자 구분 동작이 적용되지 않습니다. 예를 들어, DataSet에 하나의 Table1만 있는 경우 **dataSet.Tables["TABLE1"]**를 사용하여 참조할 수 있습니다.

참고:

DataSetCaseSensitive 속성은 이 동작에 영향을 미치지 않습니다. CaseSensitive 속성은 DataSet 내의 데이터에 적용되며 정렬, 찾기, 필터링, 제약 조건 적용 등에 영향을 줍니다.

네임스페이스 지원

ADO.NET 2.0보다 이전 버전에서는 네임스페이스가 서로 다르더라도 두 테이블의 이름이 같을 수 없었습니다. 하지만 ADO.NET 2.0에서는 이러한 제한이 사라졌습니다. DataSetTableName 속성 값은 같지만 Namespace 속성 값이 다른 두 테이블이 포함될 수 있습니다.

참고 항목

기타 리소스

DataSets, DataTables 및 DataViews(ADO.NET)