C#绘制柱形图

柱形图数据

 

 通过 panel 绘制柱形图

 

 private void ShowPic()
        {
            Conn();                                                    //打开数据库连接
            using (cmd = new SqlCommand("SELECT TOP 3 * FROM tb_Rectangle order by t_Num desc", con))
            {
                SqlDataReader dr = cmd.ExecuteReader();                            //创建SqlDataReader对象
                Bitmap bitM = new Bitmap(this.panel1.Width, this.panel1.Height);        //创建画布
                Graphics g = Graphics.FromImage(bitM);                            //创建Graphics对象
                g.Clear(Color.White);                                        //设置画布背景
                for (int j = 0; j < 4; j++)                                        //开始读取数据库中的数据并绘图
                {
                    if (dr.Read())                                            //读取记录集
                    {
                        int x, y, w, h;                                        //声明变量存储坐标和大小
                        g.DrawString(dr[0].ToString(), new Font("宋体", 8, FontStyle.Regular), new SolidBrush(Color.Black), 76 + 40 * j, this.panel1.Height - 16);                                            //绘制文字
                        x = 78 + 40 * j;                                        //x坐标
                        y = this.panel1.Height - 20 - Convert.ToInt32((Convert.ToDouble(Convert.ToDouble(dr[1].ToString()) * 20 / 100)));                                                            //y坐标
                        w = 24;                                            //
                        h = Convert.ToInt32(Convert.ToDouble(dr[1].ToString()) * 20 / 100);//
                        g.FillRectangle(new SolidBrush(Color.FromArgb(56, 129, 78)), x, y, w, h);//开始绘制柱形图
                    }
                }
                this.panel1.BackgroundImage = bitM;                            //显示绘制的柱形图
            }
        }

 

posted @ 2022-07-16 22:13  明志德道  阅读(694)  评论(0编辑  收藏  举报