Concat列在datatable中添加数据

时间:2011-05-05 11:16:27

标签: c# .net asp.net date

我从数据库中获取一些数据,这些数据在年月和年份中有日期分解,原因是我想要连接该列并添加一个新列。

我正在做的是添加数据

                    DataColumn newColumn;
                    newColumn = new DataColumn("CompositeDate");
                    newColumn.Expression = "Day + Month + Year" ;
                    scaleResponseData.Columns.Add(newColumn);

数据表中的数据是这样的

year | Month | Day
2009   10       2
2010   11       3

我目前的代码在做什么

year | Month | Day | composite_Date 
2009   10       2      2021
2010   11       3      2024

但结果应该是一些事情

year | Month | Day | composite_Date 
 2009   10     02      20091002
 2010   11     03      20101103

我有不同的组合,但没有任何工作

4 个答案:

答案 0 :(得分:3)

试试这个:

newColumn.Expression = "Convert(Day , 'System.String') + Convert(Month , 'System.String') + Convert(Year, 'System.String')";

答案 1 :(得分:1)

这是因为您的列是数字,添加三个数字将产生一个新数字。

尝试通过在列之间包含空文本来强制表达式生成字符串:

newColumn.Expression = "Day + '' + Month + '' + Year" ;

答案 2 :(得分:1)

Yoo也可以将其转换为“真正的”DateTime类型,就像这样。

newColumn.Expression = "Convert(Year + '/' + Month + '/' + Day, 'System.DateTime')";

答案 3 :(得分:0)

如果您在数据库中有年份,月份和日期作为整数,则以数字方式添加,例如: Year = 2009,month = 10 and day = 2 == 2009 + 10 + 2 = 2021,这是您当前的composite_date。

你应该试试 年* 10000 +月* 100 +天获得您想要的结果=> newColumn.Expression = "Day + Month * 100 + Year * 10000" ;