Я работаю над проектом отчета, и у меня есть DataTable:
![enter image description here](https://i.stack.imgur.com/zqOfq.png)
Даты поступают из базы данных (PIVOTS).
У меня есть код, который дает мне только даты выходных:
List<string> getWeekOffDates = ds.Tables[0].AsEnumerable().Select(x => x.Field<DateTime>("WeekOff").ToString("yyyy-MM-dd")).ToList();
Я хочу сравнить это с тем, совпадают ли getWeekOffDates и даты в моих таблицах данных ( из всех дат месяца). Если да, тогда присвойте им строку «WO», что означает WeekOff
Например:
getWeekOffDates будет иметь список дат, и 2020-01-04, 2020-01-05 - это два из них. Теперь я хочу проверить эти даты в моей таблице данных, если она есть, то я бы хотел присвоить строку «WO» этим датам во всех строках, чтобы упомянуть, что у нее выходной.
Я пробовал этот код, но не похоже, что datatable обновляется.
public DataTable GetHolidays(DataSet ds, List<string> dates, DataTable dt)
{
for (int i = 0; i <= dates.Count - 1; i++)
{
// checks if dates from WeekOffDays Column is present
bool weekOff = ds.Tables[0].AsEnumerable().Any(x => dates.Contains(x.Field<DateTime>("WeekOffDays").ToString("yyyy-MM-dd")));
// get the weekoff dates
List<string> getWeekOffDates = ds.Tables[0].AsEnumerable().Select(x => x.Field<DateTime>("WeekOff").ToString("yyyy-MM-dd")).ToArray();
if (weekOff)
{
// string wo = dates[i].ToString();
string offs = getWeekOffDates[i].ToString();
dt.Columns.Cast<DataColumn>().Where(r => r.ColumnName == offs).FirstOrDefault().DefaultValue="WO";
}
}
dt.AcceptChanges();
return dt;
}
Затем я вызываю эту функцию по нажатию кнопки:
protected void btnGetLeaveData_Click(object sender, EventArgs e){
DataTable report= DataAccess.GetDataInDataTable(ConstantFieldsModel.PRIMARYCONNECTION, "usp_GetAnalystLeaveReport", CommandType.StoredProcedure, param);
List<string> columnNames = report.Columns.Cast<DataColumn>().Skip(16).Select(cols => cols.ColumnName).ToList();
GetHolidays(GetData(), columnNames,report);
}
Назначенное DefaultValue должно обновиться DataTable, но это не так. Чего мне не хватает?