[c#/zedgraph] 주민번호 필드로부터 연령대별 통계 구하기
작성일 18-07-25 17:20
페이지 정보
작성자sbLAB 조회 4,310회 댓글 0건본문
SELECT LEFT((YEAR(now()) - (MID(jumin,1,2) + 1900)),1) AS ages,count(*) AS total
FROM graph
GROUP BY LEFT((YEAR(now()) - (MID(jumin,1,2) + 1900)),1)
[결과값을 구조체로 받아 ZedGraph 에 보내본 결과]
[zedgraph 예제소스 -서버연결 부분 생략됨]
//연령대-사람수 구조체
public struct Addr
{
public int ages; //연령대
public int total; //사람수
}
private void button1_Click(object sender, EventArgs e)
{
string sqr = @"SELECT LEFT((YEAR(now()) - (MID(jumin,1,2) + 1900)),1) AS ages,count(*) AS total FROM graph GROUP BY LEFT((YEAR(now()) - (MID(jumin,1,2) + 1900)),1)";
//서버에서 쿼리 결과값 가져옴(생략)
//색상표
Color[] color = { Color.Red, Color.Blue, Color.Gray, Color.Yellow};
//DB서버에서 받아온 연령대,사람수 구조체를 담을 List
List<Addr> addr = new List<Addr>();
//addr 완성
foreach (XmlNode xn in xnList)
{
Addr ad = new Addr();
ad.ages = Int32.Parse(HttpUtility.UrlDecode(xn["ages"].InnerText)); //연령대
ad.total = Int32.Parse(HttpUtility.UrlDecode(xn["total"].InnerText)); //사람수
addr.Add(ad);
}
GraphPane myPane = zgc.GraphPane;
//색상별 안내표 보임
myPane.Legend.IsVisible = true;
myPane.Title.Text = "연령분석";
//ZedGraph 차트값 동적할당
List<PieItem> list = new List<PieItem>();
for (int i = 0; i < addr.Count; i++)
{
list.Add(myPane.AddPieSlice(addr[i].total, color[i], 0.1F, addr[i].ages.ToString()+"0대"));
list[i].LabelType = PieLabelType.Name_Value_Percent;
list[i].Fill = new Fill(color[i], Color.White, 45F);
}
zgc.AxisChange();
zgc.Invalidate();
}
첨부파일
- ageTozed.cs (2.5K) 2회 다운로드 | DATE : 2018-07-25 17:20:16
댓글목록
등록된 댓글이 없습니다.