以前我问过inserting a column into a dataset。我现在有一个类似的问题,即将两列或更多列合并为一列。如何合并DataSet中的两列?
可以说我有以下数据集:
DataSet ds = new DataSet();
ds.Tables.Add(new DataTable());
ds.Tables[0].Columns.Add("id", typeof(int));
ds.Tables[0].Columns.Add("firstname", typeof(string));
ds.Tables[0].Columns.Add("lastname", typeof(string));
我需要的“名字”和“姓氏”列组合成所谓的“名”一列。
对我来说,创建一个将两个列合并在一起的方法还是一个可以用来将多个列合并在一起的更一般的方法是最好的方法?
我的想法是像下面创建排序的一般化方法:
MergeColumns(字符串格式,串mergedColumn,数据表DT,则params串[] columnsToMerge)
用户如下提供的格式:“{0} {1}”
mergedColumn是新列的名称......但它必须能够与将要合并的列之一相同因为在我的现实世界中, m将“name”和“given_names”合并为“name”...但我仍然希望能够使用它,如果我需要合并“街道”,“城市”,“州”,“后科de“等列入名为”地址“的列。
我想这将被使用的方式如下:
MergeColumns( “{0} {1}”, “姓名”,的dataTable, “姓名”, “姓”);
给出了上述数据集,我期望得到的数据设置为如下所示:
DataSet ds = new DataSet();
ds.Tables.Add(new DataTable());
ds.Tables[0].Columns.Add("id", typeof(int));
ds.Tables[0].Columns.Add("name", typeof(string));
这个问题似乎是一个合理的做法?像这样的方法是否已经存在?我不想重新发明轮子。另外,我是否正在创建比我现在需要的功能更多的方法?
实际上这不是一个坏主意......我只是仔细检查了我已经提供的规范,并且没有任何内容说这不能在存储过程级别完成......这种方式我只回到“名称”列... – mezoid 2009-01-19 05:18:30
我投这个答案,因为它允许我轻松地在存储的proc级别完成工作。虽然这个答案没有回答如何实际合并两列,但它确实表明我正在考虑解决方案。 – mezoid 2009-01-19 06:22:51