private DataTable GetDataTable() { try { DataTable dt_student = SpecialWorkBusiness.GetAllData(); int thisYear = DateTime.Now.Year; if (dt_student != null) { DataTable dt_grid = new DataTable(); dt_grid.Columns.Add("ItemName"); //item名称 dt_grid.Columns.Add("Count"); //item 人数 dt_grid.Columns.Add("Percent"); //百分比 int itemCount = 8; //总项数 20岁及以下、21-25岁、26-30岁、31-35岁、36-40岁、40-45岁、46-50岁、50岁以上 int totals = dt_student.Rows.Count; //总人数 if (true) { DataRow dr = dt_grid.NewRow();//grid 行数据 dr["ItemName"] = "20岁及以下"; int count = dt_student.Select("Birthday >= '" + new DateTime(thisYear - 20, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "21-25岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 20, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 25, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "26-30岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 25, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 30, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "31-35岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 30, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 35, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "36-40岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 35, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 40, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "41-45岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 40, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 45, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "46-50岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 45, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 50, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "50岁以上"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 50, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); } DataRow dr_total = dt_grid.NewRow();//添加一条 总计 dr_total["ItemName"] = "总计"; dr_total["Count"] = totals; dr_total["Percent"] = totals == 0 ? "0.00%" : "100%"; dt_grid.Rows.Add(dr_total); return(dt_grid); } else { ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "alter", "layer.alert('数据加载错误!')", true); return(new DataTable()); } } catch (Exception ex) { ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "alter", "layer.alert('数据加载错误!')", true); return(new DataTable()); } }
private void Bind_statistic() { try { DataTable dt_student = SpecialWorkBusiness.GetAllData(); int thisYear = DateTime.Now.Year; if (dt_student != null) { DataTable dt_grid = new DataTable(); dt_grid.Columns.Add("ItemName"); //item名称 dt_grid.Columns.Add("Count"); //item 人数 dt_grid.Columns.Add("Percent"); //百分比 int itemCount = 8; //总项数 20岁及以下、21-25岁、26-30岁、31-35岁、36-40岁、40-45岁、46-50岁、50岁以上 int totals = dt_student.Rows.Count; //总人数 StringBuilder sb_pic_x = new StringBuilder(); //sb_pic_x.Append("["); StringBuilder sb_pic_sum = new StringBuilder(); //sb_pic_sum.Append("{name: '总人数',data: ["); StringBuilder sb_pic_percent = new StringBuilder(); //sb_pic_percent.Append("{name: '所占比例',data: ["); if (true) { DataRow dr = dt_grid.NewRow();//grid 行数据 dr["ItemName"] = "20岁及以下"; int count = dt_student.Select("Birthday >= '" + new DateTime(thisYear - 20, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); if (sb_pic_x.Length == 0)//柱状图 横坐标 { sb_pic_x.Append("'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append(count); sb_pic_percent.Append(percent); } else { sb_pic_x.Append(",'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append("," + count); sb_pic_percent.Append("," + percent); } } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "21-25岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 20, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 25, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); if (sb_pic_x.Length == 0)//柱状图 横坐标 { sb_pic_x.Append("'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append(count); sb_pic_percent.Append(percent); } else { sb_pic_x.Append(",'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append("," + count); sb_pic_percent.Append("," + percent); } } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "26-30岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 25, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 30, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); if (sb_pic_x.Length == 0)//柱状图 横坐标 { sb_pic_x.Append("'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append(count); sb_pic_percent.Append(percent); } else { sb_pic_x.Append(",'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append("," + count); sb_pic_percent.Append("," + percent); } } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "31-35岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 30, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 35, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); if (sb_pic_x.Length == 0)//柱状图 横坐标 { sb_pic_x.Append("'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append(count); sb_pic_percent.Append(percent); } else { sb_pic_x.Append(",'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append("," + count); sb_pic_percent.Append("," + percent); } } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "36-40岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 35, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 40, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); if (sb_pic_x.Length == 0)//柱状图 横坐标 { sb_pic_x.Append("'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append(count); sb_pic_percent.Append(percent); } else { sb_pic_x.Append(",'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append("," + count); sb_pic_percent.Append("," + percent); } } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "41-45岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 40, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 45, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); if (sb_pic_x.Length == 0)//柱状图 横坐标 { sb_pic_x.Append("'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append(count); sb_pic_percent.Append(percent); } else { sb_pic_x.Append(",'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append("," + count); sb_pic_percent.Append("," + percent); } } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "46-50岁"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 45, 1, 1).ToString() + "' and Birthday >= '" + new DateTime(thisYear - 50, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); if (sb_pic_x.Length == 0)//柱状图 横坐标 { sb_pic_x.Append("'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append(count); sb_pic_percent.Append(percent); } else { sb_pic_x.Append(",'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append("," + count); sb_pic_percent.Append("," + percent); } } if (true) { DataRow dr = dt_grid.NewRow(); dr["ItemName"] = "50岁以上"; int count = dt_student.Select("Birthday < '" + new DateTime(thisYear - 50, 1, 1).ToString() + "'").Length; double percent = totals == 0 ? 0.0000 : Math.Round(1.0 * count / totals, 4); dr["Count"] = count; dr["Percent"] = percent * 100 + "%"; dt_grid.Rows.Add(dr); if (sb_pic_x.Length == 0)//柱状图 横坐标 { sb_pic_x.Append("'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append(count); sb_pic_percent.Append(percent); } else { sb_pic_x.Append(",'" + dr["ItemName"].ToString() + "'"); sb_pic_sum.Append("," + count); sb_pic_percent.Append("," + percent); } } DataRow dr_total = dt_grid.NewRow();//添加一条 总计 dr_total["ItemName"] = "总计"; dr_total["Count"] = totals; dr_total["Percent"] = totals == 0 ? "0.00%" : "100%"; dt_grid.Rows.Add(dr_total); gv_result.DataSource = dt_grid; gv_result.DataBind(); Label_Result.Text = itemCount.ToString(); xAxis = sb_pic_x.ToString(); Data_Sum = "{name: '总人数',data: [" + sb_pic_sum + "]}"; Data_Percent = "{name: '所占比例',data: [" + sb_pic_sum + "]}"; } else { ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "alter", "layer.alert('数据加载错误!')", true); } } catch (Exception ex) { ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "alter", "layer.alert('数据加载错误!')", true); } }