【问题标题】:Add Columns to new DataRow将列添加到新的 DataRow
【发布时间】:2012-04-11 14:34:01
【问题描述】:

是否可以在运行时创建一个新的 DataRow 对象并为其添加列?

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

【问题讨论】:

    标签: asp.net .net datarow


    【解决方案1】:

    没有。 DataRow 设计为 DataTable 的子项,DataTable 具有添加列所需的访问器。如果您可以直接操作 DataRows,则可以创建一个“锯齿状表”,其中的行具有不同的列数/顺序。这通常是一件坏事,所以只是没有完成。

    如果您想向 DataRow 添加一列,请将您的 Row 添加到 DataTable,向该 DataTable 添加一列,然后再次查看您的 DataRow。

    【讨论】:

      【解决方案2】:

      我不认为您可以将列添加到数据行,但您当然可以添加到数据表。下面是一些用于 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 方法将您喜欢的任何列添加到数据表中。

      【讨论】:

        猜你喜欢
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-15
        • 2017-01-30
        • 2014-06-30
        • 2012-05-03
        • 1970-01-01
        相关资源
        最近更新 更多