在c#通用方法中指定数据表的列
本文关键字:数据表 方法 | 更新日期: 2023-09-27 17:53:25
我已经有了指定dataTable
列的代码,但是我想要创建一个在她的参数中有:ColumnName
和类型的通用方法。我该怎么做呢?
这是我的代码:
column = dt.Columns.Add();
column.ColumnName = "IPPName";
column.DataType = typeof(String);
column = dt.Columns.Add();
column.ColumnName = "tagName";
column.DataType = typeof(String);
column = dt.Columns.Add();
column.ColumnName = "time";
column.DataType = typeof(String);
column = dt.Columns.Add();
column.ColumnName = "value";
column.DataType = typeof(Double);
column = dt.Columns.Add();
column.ColumnName = "qtity";
column.DataType = typeof(Double);
我不知道我是否理解对了问题。你想实现这样的东西吗?
public DataTable CreateDataTable(Dictionary<string,Type> columns)
{
DataTable dt = new DataTable();
foreach( var key in columns)
{
var column = dt.Columns.Add();
column.ColumnName = key.Key;
column.DataType = key.Value;
}
return dt;
}
public void CreateNewDataTable()
{
var columns = new Dictionary<string, Type>()
{
{"column", typeof (string)}
};
var dt = CreateDataTable(columns);
}
使用扩展方法解决它的另一种方法。我相信它比@adt答案更容易理解,而且更有用,因为它可以在已经存在的DataTable
上调用。
如果你需要关于扩展方法的帮助,看看这个描述或直接问:)
public static class DataTableExtentions {
public static void AddColumn(this DataTable table, string columnName, Type columnType)
{
var col = table.Columns.Add();
col.ColumnName = columnName;
col.DataType = columnType;
}
}
可以这样命名:
column = dt.AddColumn("IPPName", typeof(String));
column = dt.AddColumn("tagName", typeof(String));
column = dt.AddColumn("time", typeof(String));
column = dt.AddColumn("value", typeof(Double));
column = dt.AddColumn("qtity", typeof(Double));