是否可以在運行時創建新的DataRow對象並向其添加列?將列添加到新的DataRow
// How can I specify column names for this data row object?
DataRow row = new DataRow();
是否可以在運行時創建新的DataRow對象並向其添加列?將列添加到新的DataRow
// How can I specify column names for this data row object?
DataRow row = new DataRow();
我不認爲你可以添加列到數據行,但你當然可以到數據表。這裏有一些代碼爲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方法將任何您喜歡的列添加到數據表中。
不。DataRow被設計成DataTable的子元素,它具有添加列所需的訪問器。如果您可以直接操作DataRows,那麼可以創建一個具有不同列計數/順序的行的「鋸齒形表」。這通常是一件壞事,所以它沒有完成。
如果你想添加一列到你的DataRow中,將你的行添加到DataTable中,向該DataTable中添加一列,然後再次查看你的DataRow。