如何使用数组中的DataType创建数据表列

本文关键字:创建 数据表 DataType 何使用 数组 | 更新日期: 2023-09-27 18:24:16

如何从2D数组中创建具有列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 错误

如何使用数组中的DataType创建数据表列

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

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]]);
        }
    }

与使用GetType方法相比,您必须编写Type的全名。如果你想获得int32类型,你必须像这样指定System.Int32

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