using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.Drawing.Imaging;namespace Bar...{ /**//// <summary> /// WebForm1 的摘要说明。 /// </summary> public class WebForm1 : System.Web.UI.Page ...{ private void Page_Load(object sender, System.EventArgs e) ...{ // 在此处放置用户代码以初始化页面 string STR="server=.;uid=sa;pwd=sa;database=DBTest"; //获得当前Access数据库在服务器端的绝对路径 SqlConnection conn=new SqlConnection(STR); conn.Open(); SqlCommand cmd=conn.CreateCommand(); cmd.CommandText="SELECT YF ,SL FROM Table01 ORDER BY YF" ; SqlDataReader reader=cmd.ExecuteReader(); //创建OleDbDataReader实例,并以此实例来获取数据库中各条记录数据 int[] iXiaoSH = new int[12]; //定义一个数组,用以存放从数据库中读取的销售数据 string[] sMoth = new string[12]; //定义一个数组,用以存放从数据库中读取的销售月份 int iIndex = 0; while (reader.Read()) ...{ iXiaoSH[iIndex] = reader.GetInt32(1); sMoth[iIndex] = reader.GetInt32(0).ToString() + "月"; iIndex++; } //读取Table01数据表中的各条数据,并存放在先前定义的二个数组中 conn.Close(); reader.Close(); //关闭各种资源 Bitmap bm = new Bitmap(600, 250); //创建一个长度为600,宽带为250的Bitmap实例 Graphics g; g = Graphics.FromImage(bm); //由此Bitmap实例创建Graphic实例 g.Clear(Color.Snow); //用Snow色彩为背景色填充此绘画图面 g.DrawString(" 天天公司2008年度销售情况一览表", new Font("宋体", 16), Brushes.Black, new Point(5, 5)); //在绘画图面的指定位置,以指定的字体、指定的颜色绘制指定的字符串。即为图表标题 //以下代码是是实现图01中的右上部 Point myRec = new Point(535, 30); Point myDec = new Point(560, 26); //以上是在图01中为下面绘制定位 g.DrawString("单位:万套", new Font("宋体", 9), Brushes.Black, new Point(525, 12)); for (int i = 0; i < sMoth.Length; i++) ...{ g.DrawRectangle(Pens.Black, myRec.X, myRec.Y, 20, 10); //绘制小方块 g.FillRectangle(new SolidBrush(GetColor(i)), myRec.X, myRec.Y, 20, 10); //填充小方块 g.DrawString(sMoth[i].ToString(), new Font("宋体", 9), Brushes.Black, myDec); //绘制小方块右边的文字 myRec.Y += 15; myDec.Y += 15; } //以下代码是绘制图01中的Bar图,及其销售数量 int iBarWidth = 40; int scale = 10; for (int i = 0; i < iXiaoSH.Length; i++) ...{ g.DrawRectangle(Pens.Black, (i * iBarWidth) + 15, 250 - (iXiaoSH[i] * scale), 20, (iXiaoSH[i] * scale) + 5); //绘制Bar图 g.FillRectangle(new SolidBrush(GetColor(i)), (i * iBarWidth) + 15, 250 - (iXiaoSH[i] * scale), 20, (iXiaoSH[i] * scale) + 5); //以指定的色彩填充Bar图 g.DrawString(iXiaoSH[i].ToString(), new Font("宋体", 9), Brushes.Black, (i * iBarWidth) + 20, 235 - (iXiaoSH[i] * scale)); //显示Bar图代表的数据 } //以下代码是绘制图01中的边框,并形成Jpeg文件,供浏览器显示出来 Pen p = new Pen(Color.Black, 2); g.DrawRectangle(p, 1, 1, 598, 248); Response.ContentType="image/Jpeg"; bm.Save(Response.OutputStream, ImageFormat.Jpeg); } private Color GetColor ( int itemIndex ) ...{ Color MyColor ; int i = itemIndex ; switch(i) ...{ case 0: MyColor=Color.Coral; return MyColor; case 1 : MyColor = Color.Red ; return MyColor ; case 2 : MyColor = Color.Cornsilk ; return MyColor ; case 3 : MyColor = Color.DarkGreen ; return MyColor ; case 4 : MyColor = Color.Crimson ; return MyColor ; case 5 : MyColor = Color.Coral ; return MyColor ; case 6 : MyColor = Color.Gray ; return MyColor ; case 7 : MyColor = Color.BurlyWood ; return MyColor ; case 8 : MyColor = Color.Maroon ; return MyColor ; case 9 : MyColor = Color.Azure ; return MyColor ; case 10 : MyColor = Color.AliceBlue ; return MyColor ; case 11 : MyColor = Color.Bisque ; return MyColor ; case 12 : MyColor = Color.Chartreuse ; return MyColor ; default: MyColor = Color.Green; return MyColor ; } } Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) ...{ // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /**//// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() ...{ this.Load += new System.EventHandler(this.Page_Load); } #endregion } }