我将数据从CSV文件导入到数据表中。
现有供应商在一栏中将期间发送为“ 201901”。 新的供应商将期间分为两列,例如“ 2019”年和“ JAN”月。
我想将两列合并为'201901',以便其余代码逻辑像以前一样工作。
当我查看Datatable.Columns.Add
的文档时,发现所有示例仅是数字表达式,与列表达式中的字符串或日期无关。
这是我的代码。 这些来自CSV文件,因此当导入到数据表时,这些列具有2019年和JAN数据。
DT.Columns.Add("MAT_YEAR", typeof(string));
DT.Columns.Add("MAT_MONTH", typeof(string));
我想基于以上两列获取计算值
DT.Columns.Add("MONTHNUM", typeof(int),"DateTime.ParseExact(MAT_MONTH,\"MMM\",null).Month");
DT.Columns.Add("MAT_PERIOD", typeof(string), "MAT_YEAR + Convert.ToString(MONTHNUM)");
我在DateTime.Parse
上遇到错误
如何根据字符串或日期在Datatable中创建计算列?
答案 0 :(得分:0)
也许尝试以下方法。
DT.Columns.Add("MAT_YEAR", typeof(string));
DT.Columns.Add("MAT_MONTH", typeof(string));
DT.Columns.Add("MONTHNUM", typeof(string),"DateTime.ParseExact(\"MAT_MONTH + \"01 2000\", \"MMM dd yyyy\", CultureInfo.InvariantCulture).Month.ToString(\"00\");
DT.Columns.Add("MAT_PERIOD", typeof(string), "MAT_YEAR + MONTHNUM");
全部归功于查尔斯·梅(Charles May),完全正确