效果图:
1.首先,在工具箱找到chart控件,拖到窗体中。
2.关于chart控件的细节设计:
series集合设计: chartType可以选择折线图、柱状图、圆饼图等等。
isValueShowAsLabel:设置是否显示数据点信息
3.数据绑定(datatable);
string sql = "";
string s1 = "";
string m1 = "";
sql = string.Format("select 作业时间,sum(作业用时) as 总作业用时 from 学生作业 a, 学生科目表 b where a.科目ID = b.ID and a.学生ID ={0} and 作业时间 between ‘{1}‘ and ‘{2}‘ group by 作业时间", cbx学生.SelectedValue,dtpstartTime.Value.ToLongDateString().ToString(),dtpendTime.Value.ToLongDateString().ToString());
OleDbDataAdapter sda = new OleDbDataAdapter(sql, objcnn);
// 2.创建数据集:
DataSet ds = new DataSet();
// 3.填充数据集:
sda.Fill(ds);
// 4.绑定:DataGridView
DataTable dt = ds.Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string s = dt.Rows[i]["作业时间"].ToString();
string m = dt.Rows[i]["总作业用时"].ToString();
s1 += s + ",";
m1 += m + ",";
//主要将dt中的数据串成一个字符串;
}
s1 = s1.Substring(0, s1.Length - 1);
m1 = m1.Substring(0, m1.Length - 1);
//主要字符串最后的逗号;
List<string> list = new List<string>(s1.Split(‘,‘));
List<string> x = new List<string>(s1.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));
//主要将字符串转成list集合的形式;
List<string> listy = new List<string>(m1.Split(‘,‘));
List<string> y = new List<string>(m1.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));
this.chart_时间.Series["日期/完成作业时间"].Points.DataBindXY(x, y); //x、y是设置x、y轴的数据
}