我有一个数据表,其中包含ID,Date1,Amount等字段
我想将数据行转换为CSV格式
即: -
101 | 2017-10-10 | 15000
102 | 2017-10-15 | 12500
103 | 2017-10-25 | 20000
我使用下面的代码将行转换为CSV字符串:
Dim rowAsString = String.Join(", ", dRow.ItemArray.Select(Function(c) "'" & c.ToString() & "'").ToArray())
输出为: -
101, 10/10/2017 12:00 AM, 15000
102, 15/10/2017 12:00 AM, 12500
103, 25/10/2017 12:00 AM, 20000
我想要的是: -
101, 2017-10-10, 15000
102, 2017-10-15, 12500
103, 2017-10-25, 20000
请帮助我使用上面的linq查询来格式化yyyy-mm-dd
答案 0 :(得分:2)
您可以使用此module MyApp
module ActiveAdmin
module Views
module Pages
module BaseExtension
def build_active_admin_head
super
within @head do
text_node(javascript_pack_tag('application'))
end
end
end
end
end
end
end
class ActiveAdmin::Views::Pages::Base < Arbre::HTML::Document
prepend MyApp::ActiveAdmin::Views::Pages::BaseExtension
end
扩展程序:
DataRow
用法:
public static string ToCsvString(this DataRow row, string delimiter)
{
return ToCsvString(row, delimiter, null, null);
}
public static string ToCsvString(this DataRow row, string delimiter, string dateFormat, IFormatProvider formatProvider)
{
if(dateFormat == null)
dateFormat = DateTimeFormatInfo.InvariantInfo.ShortDatePattern;
if (formatProvider == null)
formatProvider = DateTimeFormatInfo.InvariantInfo;
var fields = row.Table.Columns.Cast<DataColumn>()
.Select(c => c.DataType != typeof(DateTime)
? row[c].ToString()
: row.Field<DateTime>(c).ToString(dateFormat, formatProvider));
return string.Join(delimiter, fields);
}
VB.NET版本:
string rowAsString = dRow.ToCsvString(", ");
答案 1 :(得分:0)
这应该有效。 View -> Tool Windows -> Build Variants
应更改为日期列。
i = 1