【问题标题】:How to Create Datatable Columns With DataType From Array?如何从数组中创建具有 DataType 的数据表列?
【发布时间】:2016-02-26 16:42:43
【问题描述】:

如何使用二维数组中的 DataType 列创建新的 DataTable? 这是我的代码:

DataTable dtColorList = new DataTable;

string[,] values = new string[,] { {"ID","int"}, {"Name","string"}, {"ColorID","int16"} };
AddDataTableColWithType(dtColorList, values);

public static void AddDataTableColWithType(DataTable dtName, string[,] colNameAndType)
    {
        for (int i = 0; i < colNameAndType.Length / 2; i++)
        {
            dtName.Columns.Add(colName[i,0],typeof(Type.GetType(colType[i,1])));

        }
    }

Type.GetType 错误

【问题讨论】:

    标签: c# arrays types datatable


    【解决方案1】:

    您可以使用这个简单的解决方案:基本思想是使用映射

    public static Dictionary<string, Type> PrimitiveTypes = new Dictionary<string, Type>
          {
             {"int",typeof(int)},
             {"string",typeof(string)}
          };
    
        public static void Main(string[] args)
        {
            DataTable dtColorList = new DataTable();
    
            string[,] values = new string[,] { { "ID", "int" }, { "Name", "string" } };
            AddDataTableColWithType(dtColorList, values);
    
            Console.ReadLine();
        }
    
        public static void AddDataTableColWithType(DataTable dtName, string[,] colNameAndType)
        {
            for (int i = 0; i < colNameAndType.Length / 2; i++)
            {
                dtName.Columns.Add(colNameAndType[i, 0], PrimitiveTypes[colNameAndType[i, 1]]);
            }
        }
    

    【讨论】:

    • 非常好,谢谢。
    【解决方案2】:

    您必须写出Type 的全名,而不是使用GetType 方法找到它。如果您想获得int32 类型,则必须像这样指定System.Int32

    string[,] values = new string[,] { { "ID", "System.Int32" }, { "Name", "System.String" }, { "ColorID", "System.Int16" } };
    

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2021-12-14
      相关资源
      最近更新 更多