-1
DataTableの同じ列に2つの異なる値を追加します。C#のDataTableの同じ列に異なるデータを追加します
row0["sessionID"] = ss.session_id;
row0["sessionID"] = se.session_id;
シナリオは、セッション2015-16と2016-17の両方に開始日と終了日とIDがあります。 2番目のセッションの開始日が2番目のセッションのIDをsessionID
の列に追加する必要がある場合は、それが必要です。例については
:
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
日は罰金の追加けどさ:その後、DataTableには次のようになりしなければならないセッション2015から16のIDが50で、セッション2016から17のIDが70でありますセッション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;
.
.
.
私はあなたがしたいことを本当に理解していません。 1つのセルに2つの値を追加することはできません。これは意味をなさない。あなたは新しい列が必要だと思います。この行は:row0 ["sessionID"] = ss.session_id; row0 ["sessionID"] = se.session_id;毎回最初の値を上書きします。 – Sebi
@Sebiは1つの列に1つのセルにはありません。日付だけで出力とコードをもう一度見てもらえます。 –
しかし、ここで:row0 ["sessionID"] = ss.session_id; row0 ["sessionID"] = se.session_id; 2つの異なるセッションIDを同じセルに書き込もうとします。だから2番目の値は確実に上書きされます。 row0 ["sessionId"]のようなrowlevelの列にアクセスすると、セルレベルになります。私はあなたの唯一の問題はこの行だと思う:row0 ["sessionID"] = se.session_id;あなたのforeachの内側に。それを殺して、それが機能するかどうか確認してください。 – Sebi