添加列到新的DataRow(Add Columns to new DataRow)

2019-09-16 11:43发布

是否有可能创建一个新的DataRow对象,并在运行时添加列呢?

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

Answer 1:

我不认为你可以添加列到一个数据行,但你肯定可以到DataTable。 下面是一些代码为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

该代码使用的枚举。 我得到了一些从思想此页面 。 这个想法是,你可以调用AddColumn方法添加你喜欢的任何数据表列。



Answer 2:

第一个DataRow被设计成一个DataTable,其中有添加列所需的访问者的孩子。 如果你可以直接操纵数据行,将有可能创造一个“铁血表”具有不同的列数/订单行。 这通常是一件坏事,所以它只是没有这样做。

如果您想将列添加到您的DataRow,你的行添加到数据表,列添加到数据表,然后看看你的DataRow一次。



文章来源: Add Columns to new DataRow