2012-04-11 2 views
2

런타임에 새 DataRow 개체를 만들고 열을 추가 할 수 있습니까?새 DataRow에 열 추가

// How can I specify column names for this data row object? 
DataRow row = new DataRow(); 

답변

1

데이터 열에 열을 추가 할 수 있다고 생각하지 않지만 확실히 데이터 테이블을 사용할 수는 있습니다. 여기에 VB를 위해이 작업을 수행하는 몇 가지 코드는 다음과 같습니다

Enum enumType 
    StringType = 1 
    BooleanType = 2 
    DateTimeType = 3 
    DecimalType = 4 
    DoubleType = 5 
    IntegerType = 6 
    CharType = 7 
End Enum 

Private Shared ReadOnly Property ColumnDataType(ByVal ThisDataType As enumType) As String 
    Get 

     'DataType values supported are: 
     'System.Byte, System.Char, System.DateTime, System.Decimal, System.Double, System.Int16, System.Int32, System.Int64, 
     'System.SByte, System.Single 

     Select Case ThisDataType 
      Case enumType.BooleanType 
       Return "System.Boolean" 
      Case enumType.DateTimeType 
       Return "System.DateTime" 
      Case enumType.DecimalType 
       Return "System.Decimal" 
      Case enumType.DoubleType 
       Return "System.Double" 
      Case enumType.IntegerType 
       Return "System.Int32" 
      Case enumType.StringType 
       Return "System.String" 
      Case enumType.CharType 
       Return "System.Char" 
      Case Else 
       cnst.ErrorDisplay("No such data type as " & ThisDataType.ToString) 
       Return Nothing 
     End Select 

    End Get 
End Property 
Public Shared Sub AddColumn(ByRef dt As DataTable, ByVal ColumnName As String, ByVal ThisDataType As enumType) 

    Dim dc As DataColumn = New DataColumn(ColumnName) 
    dc.DataType = System.Type.GetType(ColumnDataType(ThisDataType)) 
    dt.Columns.Add(dc) 

End Sub 

코드는 열거를 사용합니다. 아이디어 중 일부는 this page에서 얻었습니다. 아이디어는 AddColumn 메서드를 호출하여 원하는 열을 데이터 테이블에 추가 할 수 있다는 것입니다.

7

아니요 된 DataRow는 열을 추가하는 데 필요한 접근이있는 DataTable을,의 자녀가 될 수 있도록 설계되었습니다. DataRow를 직접 조작 할 수있는 경우 다른 열 개수/주문을 갖는 행이있는 "들쭉날쭉 한 테이블"을 만들 수 있습니다. 이것은 일반적으로 좋지 않으므로 완료되지 않았습니다.

DataRow에 열을 추가하려면 DataTable에 행을 추가하고 해당 DataTable에 열을 추가 한 다음 DataRow를 다시보십시오.

관련 문제