【问题标题】:Get a DataTable Columns DataType获取 DataTable Columns DataType
【发布时间】:2012-03-28 11:50:11
【问题描述】:
DataTable dt = new DataTable();  
dt.Columns.Add(new DataColumn(gridColumn1, typeof(bool)));

我希望下面一行的结果包含有关 DataColumns 类型 (bool) 的信息:

?dt.Columns[0].GetType()

【问题讨论】:

    标签: c# .net datatable datagridviewcolumn


    【解决方案1】:

    你要使用的是这个属性:

    dt.Columns[0].DataType
    

    DataType 属性将设置为以下之一:

    Boolean
    Byte
    Char
    DateTime
    Decimal
    Double
    Int16
    Int32
    Int64
    SByte
    Single
    String
    TimeSpan
    UInt16
    UInt32
    UInt64
    

    DataColumn.DataType Property MSDN Reference

    【讨论】:

    • 和任何其他类型名称,例如 System.Collections.Specialized.StringDictionary
    【解决方案2】:

    您始终可以在 if 语句中使用 typeof。它比使用像 Natarajan 的答案这样的字符串值更好。

    if (dt.Columns[0].DataType == typeof(DateTime))
    {
    }
    

    【讨论】:

      【解决方案3】:
      dt.Columns[0].DataType.Name.ToString()
      

      【讨论】:

      • 请添加有关您的答案的更多详细信息,例如解释为什么你的代码有效等等。
      【解决方案4】:

      您可以通过数据表列的DataType属性获取DataTable的列类型,如下所示:

      var type = dt.Columns[0].DataType
      

      dt:数据表对象。

      0:DataTable 列索引。

      【讨论】:

        【解决方案5】:
        if (dr[dc.ColumnName].GetType().ToString() == "System.DateTime")
        

        【讨论】:

        • 获取类型,然后转换为字符串进行比较似乎有点多余。
        猜你喜欢
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        • 2010-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多