如何使用数组中的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 错误
您可以使用这个简单的解决方案:基本思想是使用映射
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" } };