Asp.net 向新数据行添加列
是否可以在运行时创建新的DataRow对象并向其添加列Asp.net 向新数据行添加列,asp.net,.net,datarow,Asp.net,.net,Datarow,是否可以在运行时创建新的DataRow对象并向其添加列 // How can I specify column names for this data row object? DataRow row = new DataRow(); 否。DataRow被设计为DataTable的子级,DataTable具有添加列所需的访问器。如果可以直接操作DataRows,就可以创建一个“锯齿形表”,其中的行具有不同的列计数/顺序。这通常是一件坏事,所以它只是没有完成 如果要向DataRow添加列,请将行添
// How can I specify column names for this data row object?
DataRow row = new DataRow();
否。DataRow被设计为DataTable的子级,DataTable具有添加列所需的访问器。如果可以直接操作DataRows,就可以创建一个“锯齿形表”,其中的行具有不同的列计数/顺序。这通常是一件坏事,所以它只是没有完成
如果要向DataRow添加列,请将行添加到DataTable,向该DataTable添加列,然后再次查看DataRow。我认为您不能向DataRow添加列,但您肯定可以向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方法将您喜欢的任何列添加到datatable中