私はMSChartの初心者で、以下のコードは複数シリーズの列で機能します。しかし、DataBindTable や DataBindCrossTable を使用するような非常に少ないコードで、2 つのデータ テーブルを作成するか、またははるかに優れた作成に頼ることなく、複数シリーズを表示するためのより短い方法があるはずです。
私が以下でやっていることを行うより短い方法はありますか? ところで、私がやろうとしているのは、特定の学年に何人の生徒が在籍しているかを示すことです。
String sql, sql2;
sql = @"SELECT Major, SchoolYear, COUNT(*) as TotalStudents
FROM StudentList
WHERE Major='AFT'
GROUP BY Major, Schoolyear";
sql2 = @"SELECT Major, SchoolYear, COUNT(*) as TotalStudents
FROM StudentList
WHERE Major='AFT'
GROUP BY Major, Schoolyear";
SqlConnection con = new SqlConnection(connString);
con.Open();
SqlDataAdapter dta = new SqlDataAdapter(sql, con);
DataSet dst = new DataSet();
DataTable dt;
dta.Fill(dst);
dt = dst.Tables[0];
chart1.Width = 900;
chart1.ChartAreas[0].AxisX.Title = "School Year";
chart1.ChartAreas[0].AxisY.Title = "Enrollment";
chart1.Series[0].Name = dt.Rows[0][0].ToString();
chart1.Series[0].XValueMember = "SchoolYear";
chart1.Series[0].YValueMembers = "TotalStudents";
chart1.Series[0].Points.DataBindXY(dt.CreateDataReader(),"SchoolYear", dt.CreateDataReader(), "TotalStudents");
dta = new SqlDataAdapter(sql2, con);
dst = new DataSet();
dta.Fill(dst);
dt = dst.Tables[0];
chart1.Series.Add(dt.Rows[0][0].ToString());
chart1.Series[1].XValueMember = "SchoolYear";
chart1.Series[1].YValueMembers = "TotalStudents";
chart1.Series[1].Points.DataBindXY(dt.CreateDataReader(), "SchoolYear", dt.CreateDataReader(), "TotalStudents");