110,534
社区成员
发帖
与我相关
我的任务
分享
//行转列
DataTable dataTable2 = new DataTable();
dataTable2.Columns.Add("年份");
DataColumn[] dataColumns = dataTable1.AsEnumerable().GroupBy(row => row["MC"]).Select(keyValue => new DataColumn(keyValue.Key.ToString())).ToArray();
dataTable2.Columns.AddRange(dataColumns);
//数据插入
var dates = dataTable1.AsEnumerable().GroupBy(row => row["JHND"]).ToArray();
foreach (var date in dates)
{
DataRow dataRow = dataTable2.NewRow();
dataRow["年份"] = date.Key.ToString();
foreach (DataColumn column in dataColumns.Where(column => column.ColumnName != "年份"))
{
dataRow[column] = dataTable1.AsEnumerable().Where(row =>
row["JHND"].ToString() == date.Key.ToString() &&
row["MC"].ToString() == column.ColumnName)
.Sum(row => Convert.ToDecimal(row["JE"]));
}
dataTable2.Rows.Add(dataRow);
}
DataTable dataTable = CreateTable();
foreach (DataRow item in dataTable.Rows)
{
CreateDataRow(dataTable, item);
}
private static void CreateDataRow(DataTable dataTable, DataRow item)
{
DataRow dataRow = dataTable.NewRow();
dataRow["年份"] = item["PurchaseOrderNo"].ToString();
dataRow["年份"] = item["PurchaseOrderNo"].ToString();
dataRow["年份"] = item["PurchaseName"].ToString();
dataTable.Rows.Add(dataRow);
}
private static DataTable CreateTable()
{
DataTable dataTable = new DataTable("dataTable");
dataTable.Columns.Add("年份", typeof(string));
dataTable.Columns.Add("年份", typeof(string));
dataTable.Columns.Add("年份", typeof(string));
return dataTable;
}
while (reader.Read())
{
CreateDataRow(dataTable, reader);
}
换为
foreach (var item in oldDataTable.Rows)
{
}
DataTable dataTable = CreateTable();
while (reader.Read())
{
CreateDataRow(dataTable, reader);
}
private static DataTable CreateTable()
{
DataTable dataTable = new DataTable("dataTable");
dataTable.Columns.Add("年份", typeof(string));
dataTable.Columns.Add("年份", typeof(string));
dataTable.Columns.Add("年份", typeof(string));
return dataTable;
}
private static void CreateDataRow(DataTable dataTable, IDataReader reader)
{
DataRow dataRow = dataTable.NewRow();
dataRow["年份"] = reader["PurchaseOrderNo"].ToString();
dataRow["年份"] = reader["PurchaseOrderNo"].ToString();
dataRow["年份"] = reader["PurchaseName"].ToString();
dataTable.Rows.Add(dataRow);
}