我从来没有将列表转换为DataTable
并将其写入文本文件,但在我的尝试中,我的文件显示全部空白,仅包含空括号({}) 这是我的代码:将列表转换为DataTable空白{}
List<string> list = new List<string>();
foreach (var item in db.Pos)
{
var total = 0;
decimal costo = 0;
for (int i = 1; i <= 31; i++)
{
var value = 0;
if (item.Fecha.Day == i)
{
value = item.Cantidad;
costo = costo + item.Total;
}
total += value;
}
list.Add(item.Descripcion);
list.Add(item.Pdv);
list.Add(item.Rid);
list.Add(((costo/(total + 1)).ToString("C")));
for (int i = 1; i <= 31; i++)
{
var value = 0;
list.Add(value.ToString());
int month = item.Fecha.Month;
if (item.Fecha.Day == i)
{
value = item.Cantidad;
list.Add(value.ToString());
}
}
list.Add(total.ToString());
list.Add((((costo/(total + 1)) * total).ToString("C")));
}
DataTable table = ToDataTable(list);
System.IO.File.WriteAllText(@"\path.txt", table);
这是我的功能转换我List<T>
到DataTable
但使我的文件空:
public static DataTable ToDataTable<T>(List<T> items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
//Get all the properties
PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
//Setting column names as Property names
dataTable.Columns.Add(prop.Name);
}
foreach (T item in items)
{
var values = new object[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
//inserting property values to datatable rows
values[i] = Props[i].GetValue(item, null);
}
dataTable.Rows.Add(values);
}
//put a breakpoint here and check datatable
return dataTable;
}
您可以在列表转换为数据表,但不是您要保存什么....你保存' JSON'无论如何。 [更新]有人编辑了您的问题,并意外删除了保存代码。 –
是对于那个编辑我的问题的人道歉,并且创建了那部分代码,我只是添加了部分我调用了我的转换列表函数并将结果写入文件 –