.net - 如何确定DataColumn 的类型是数字、字符串还是日期时间?

标签 .net types

我需要根据 DataTable 中 DataColumns 的类型格式化输出。

具体来说,我需要将内置原始类型(int、string、decimal、DateTime 等)映射到:

  • SomeEnum.Numeric
  • SomeEnum.Bool
  • SomeEnum.DateTime
  • SomeEnum.String
  • SomeEnum.Unknown
  • SomeEnum.Null

  • 我怎么能这样做?

    最佳答案

    如果内置 TypeCode 枚举满足您的需求,那么您可以阅读 DataType 您的属性(property)DataColumn然后调用 GetTypeCode ,

    TypeCode yourTypeCode = Type.GetTypeCode(yourDataColumn.DataType);
    
    switch (yourTypeCode)
    {
        case TypeCode.Byte:
        case TypeCode.SByte:
        case TypeCode.Int16
        case TypeCode.UInt16:
        case TypeCode.Int32:
        case TypeCode.UInt32:
        case TypeCode.Int64:
        case TypeCode.UInt64:
        case TypeCode.Single:
        case TypeCode.Double:
        case TypeCode.Decimal:
            Console.WriteLine("Numeric");
            break;
        case TypeCode.Boolean:
            Console.WriteLine("Bool");
            break;
        case TypeCode.DateTime:
            Console.WriteLine("DateTime");
            break;
        case TypeCode.String:
            Console.WriteLine("String");
            break;
        case TypeCode.Empty:
            Console.WriteLine("Null");
            break;
        default:    // TypeCode.DBNull, TypeCode.Char and TypeCode.Object
            Console.WriteLine("Unknown");
            break;
    }
    

    TypeCode不满足您的需求,那么您可以简单地将列类型转换为您自己的自定义枚举,如 John's answer 中所述。 .

    关于.net - 如何确定DataColumn 的类型是数字、字符串还是日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3097467/

    相关文章:

    c# - 用于解析完全限定类型名称的现有类/方法

    .net - 如何为现有的 c 项目创建 VS 解决方案,以便 VS 自动选择新文件?

    typescript - 泛型函数子类型约束错误和混淆

    c++ - 如何调用特定于 C++ 子类的方法

    c# - 此命名空间冲突是由于 XAML 到 .NET 代码生成中的错误造成的吗?

    .net - 什么是真实透明代理

    .net - Excel xml 电子表格 - 是否可以嵌入图像?

    haskell - Haskell Num 类和我的类似表演的类之间存在歧义

    C: gcc 将 signed char 隐式转换为 unsigned char,反之亦然?

    javascript - 避免在 typescript 中添加字符串和数字?