-1
我想在DataTable的相同列中添加兩個不同的值。在C#中的DataTable的同一列中添加不同的數據
row0["sessionID"] = ss.session_id;
row0["sessionID"] = se.session_id;
情景是我必須參加2015-16和2016-17的會議,他們都有開始日期和結束日期以及ID。我想如果第二次會話的開始日期發生,則必須將第二次會話的ID添加到sessionID
列中。
例如:會議2015-16的ID是50,會議2016-17的ID是70,則數據表必須是這個樣子:
SessionID Session Date
____________________________
50 2015-10-01
50 2015-11-01
50 2015-12-01
50 2016-01-01
50 2016-02-28
70 2016-03-01
70 2016-04-01
70 2016-05-01
. .
. .
70 2017-03-31
日期是增加罰款,但我我無法添加會話ID。我如何添加它?
這裏是我的完整代碼:
var sessionsFrom = (from o in _session.GetAll()
where o.session_name == ddl_SessionFrom.SelectedItem.Text
&& o.branch_id == Convert.ToInt32(ddl_search_branch.SelectedValue)
select o).ToArray();
var sessionsTo = (from o in _session.GetAll()
where o.session_id == Convert.ToInt32(ddl_SessionTo.SelectedValue)
&& o.branch_id == Convert.ToInt32(ddl_search_branch.SelectedValue)
select o).ToArray();
DataTable dt = new DataTable();
dt.Columns.Add("id").DataType = typeof(Int32);
dt.Columns.Add("SessionFrom");
dt.Columns.Add("SessionTo");
dt.Columns.Add("Month");
dt.Columns.Add("totalStudent").DataType = typeof(Int32);
dt.Columns.Add("totalAdmission").DataType = typeof(Int32);
dt.Columns.Add("totLefts").DataType = typeof(Int32);
dt.Columns.Add("sessionID").DataType = typeof(Int32);
foreach (var ss in sessionsFrom)
foreach(var se in sessionsTo)
{
var row0 = dt.NewRow();
row0["totalStudent"] = totalStudent;
row0["SessionFrom"] = ss.session_name;
row0["SessionTo"] = se.session_name;
row0["sessionID"] = ss.session_id;
row0["sessionID"] = se.session_id;
id = id + 1;
row0["id"] = id;
ts = totalStudent;
dt.Rows.Add(row0);
for (DateTime i = ss.session_startdate; i < se.session_enddate; i = i.AddMonths(1))
{
int a = i.Month;
int b = i.Year;
var row = dt.NewRow();
row["SessionFrom"] = ss.session_name;
row["SessionTo"] = se.session_name;
row["sessionID"] = se.session_id;
.
.
.
我真的不明白你想要做什麼。您不能在一個單元格中添加兩個值。這是沒有道理的。你需要一個新的專欄,我認爲哪個商店session_id_2或某事。這行:row0 [「sessionID」] = ss.session_id; row0 [「sessionID」] = se.session_id;每次都會覆蓋你的第一個值。 – Sebi
@Sebi不在一個單元格中,在一列中。日期加上罰款只需再次查看輸出和代碼。 –
但是這裏:row0 [「sessionID」] = ss.session_id; row0 [「sessionID」] = se.session_id;您嘗試在同一個單元格中寫入兩個不同的會話ID。所以第二個值肯定會覆蓋。如果你像row0 [「sessionId」]那樣訪問rowlevel的列,那麼你就會進入celllevel。我認爲你唯一的問題是這一行:row0 [「sessionID」] = se.session_id;在你的foreach裏面。殺死它並檢查它是否有效。 – Sebi