private DataTable Create_DataTable()//11-9-2125选择全部线路柱状图 { //创建一个dataTable chart 的数据源 DataTable dt1 = new DataTable(); dt1.Columns.Add("日期");//添加5列数据 dt1.Columns.Add("断裂"); dt1.Columns.Add("拉伸"); dt1.Columns.Add("进水"); dt1.Columns.Add("异常"); dt1.Columns.Add("其他"); //添加5列 double[] month = new double[100]; //月份 double[] date1 = new double[100]; string[] type = new string[100]; double resultmonth = 0; DataRow dr; //添加行数据 //连接数据库 DBlink db = new DBlink(); if (db.DBcon()) { db.Getmonth_guzhang(year);//输入线路名得到故障日期和类型 } db.DBclose(); for (int i = 0; i < guzhang.date.Count; i++) { date1[i] = guzhang.date[i]; //获得月份 type[i] = guzhang.guzhang_type[i].ToString(); //获得对应的故障类型 } DBlink db1 = new DBlink(); if (db1.DBcon()) { db1.Getmonth(year);//输入线路名得到故障日期月份 } db1.DBclose(); for (int i = 0; i < guzhang.date.Count; i++) { month[i] = guzhang.date[i];//7 8 9 10 11 } double[] num = new double[] { 0, 0, 0, 0, 0 }; for (int k = 0; k < month.Length; k++) //已有月份month[0,1,2]=8,9,10 { for (int i = 0; i < date1.Length; i++) //与实际对比 { if (month[k] == date1[i]) //比如date1[0]==month[0]=8 { resultmonth = month[k]; string type1 = type[i]; //type[0]=断裂 switch (type1) //某一月份的故障类型统计 { case "断裂": //断裂 num[0]++; break; case "拉伸": num[1]++; break; case "接头盒进水": num[2]++; break; case "异常": num[3]++; break; case "其他": num[4]++; break; } } } dr = dt1.NewRow(); dr["日期"] = month[k] + "月"; //8,9,10月} dr["断裂"] = num[0]; dr["拉伸"] = num[1]; dr["进水"] = num[2]; dr["异常"] = num[3]; dr["其他"] = num[4]; dt1.Rows.Add(dr); for (int i = 0; i < 5; i++) { num[i] = 0; } } return(dt1); }