是否可以在运行时创建新的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。