| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 681 人关注过本帖
标题:【求助】折线图的程序设计
只看楼主 加入收藏
ruanyap
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-5-7
收藏
 问题点数:0 回复次数:1 
【求助】折线图的程序设计
书上的例子,[color=Lime]在VS2005里调试private Color  GetColor(int itemIndex)处却总是有一错误,不知道怎么改,请高手帮忙指出哪地方有错[/color]
using System;
using System.Collections;
using
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.OleDb;
using System.Drawing.Imaging;


private Color  GetColor(int itemIndex)
{
 Color MyColor;
 int l = itemIndex;
   switch(l)
   {
           case 1:
                 MyColor = Color.Red;
                   return MyColor;
           case 2:
                 MyColor = Color.Blue;
                 return MyColor;
           case 3;
                 MyColor = Color.Green;
                 return MyColor;
           case 4:
                 MyColor = Color.Yellow;
                 return MyColor;
            Default;
        MyColor = Color.Black;
        return MyColor;
   }   
   
private void Page_Load(object sender,System.EventArgs e)
     {
       this.oleDbConnection1.Open();
       String commm = "SELECT 年份,DELL,IBM,HP,SONY FROM SALES ORDER BY 年份";
       OleDbCommand myCommand = new OleDbCommand(comm,oleDbConnection1);
       OleDbDataReader myOleDbDataReader = myCommand.ExecuteReader();
            int[,] val = new int [10,5];
            string [] com = new string [4]{"DELL","IBM","HP","SONY"};
            int l = 0;
            int k = 0;
            int jd = 0;
            while(myOleDbDataReader.Read())
               {
                 val[k,0] = myOleDbDataReader.GetInt32(1);
                 val[k,1] = myOleDbDataReader.GetInt32(2);
                 val[k,2] = myOleDbDataReader.GetInt32(3);
                 val[k,3] = myOleDbDataReader.GetInt32(4);
                 val[k,4] = myOleDbDataReader.GetInt32(0);
                 k++;
                 jd=k-1;
            }
             this.oleDbConnection1.Close();
               myOleDbDataReader.Close();
               Bitmap bm = new Bitmap(850,400);
               Graphics g;
              g = Graphics.FromImage(bm);
               g.Clear(Color.LightBlue);
               g.DrawString("电脑销量折线图",new Font("黑体",30),Brushes.Black,new Point(150,20));
              Point myRec = new Point(700,70);
              Point myDec = new Point(720,70);
              g.DrawString("单位:万台",new Font("黑体",15),Brushes.Black,new Point(700,20));
              for(l=0;l<4;l++)
               {
                 g.DrawRectangle(Pens.Black,myRec.X,myRec.Y,20,10);
                 g.FillRectangle(new SolidBrush(GetColor(l+1)),myRec.X,myRec.Y,20,30);
                 g.DrawString(com[1].ToString(),new Font("黑体",15),Brushes.Black,myDec);
                 myRec.Y+=50;
                 myDec.Y+=50;
               }
               int iBarWidth = 80;
               for(l=0;l<=3;l++)
               {
                Pen t = new Pen(GetColor(l+1),2);
                    for(k=0;k<jd;k++)
                 {
                   g.DrawString(val[k,4].ToString()+"年",new Font("黑体",15),Brushes.Black,((k)*iBarWidth + 65),380);
                   g.DrawLine(t,(k*iBarWidth + 70),(400-(val[k,l]/500)),((k+l)*iBarWidth+70),(400-(val[k+1,1]/500));
                   g.DrawString(val[k,l].ToString(),new Font(" 宋体",8),Brushes.Black,(k*iBarWidth+70),(380-(val[k,l]/500)));
                  }
               Pen p=new Pen(Color.Black,1);
               g.DrawLine(p,1,100,1,373);
               g.DrawLine(p,1,373,698,373);
               g.DrawString("15万",new Font("黑体",15),Brushes.Black,5,85);
               g.DrawString("10万",new Font("黑体",15),Brushes.Black,5,185);
               g.DrawString("5万",new Font("黑体",15),Brushes.Black,5,285);
               bm.Save(Response.OutputStream,ImageFormat.Gif);
               }
}

SQLSever数据库建一表名SALES
年份         DELL             IBM            HP           SONY
1990          16580         56540         89560         55860     
1991          32565         58968         95650         48620     
1992          65487         75482         65458         56845     
1993          26588         54876         36548         15487     
1994          35646         69874         54687         25487     
1995          45576         76565         85465         74457   
连接数据库运行程序画出折线图

[[it] 本帖最后由 ruanyap 于 2008-10-21 20:14 编辑 [/it]]
搜索更多相关主题的帖子: 折线 程序设计 
2008-10-21 18:37
shmilylee
Rank: 2
来 自:江苏扬州蹩脚小公司
等 级:论坛游民
威 望:2
帖 子:242
专家分:22
注 册:2007-7-6
收藏
得分:0 
代码没看,只拷了你说的那个函数却发现一个天大的错误,
case 3 和 Default后面跟的是分好,不是冒号,Default应该是default难道...难道是这个问题吗???????

呵呵,书写不说了,最好这样写
        private Color GetColor(int itemIndex)
        {
            Color MyColor;
            int l = itemIndex;
            switch (l)
            {
                case 1:
                    MyColor = Color.Red; break;
                case 2:
                    MyColor = Color.Blue;break;
                case 3:
                    MyColor = Color.Green;break;
                case 4:
                    MyColor = Color.Yellow;break;
                default:
                    MyColor = Color.Black; break;
            }
            return MyColor;
        }


太可恶了,居然不能超过100个字符!
这区区100个又怎么能概括我平凡而又伟大的一生!
2008-10-21 22:20
快速回复:【求助】折线图的程序设计
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013105 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved