NET页面中贯彻数据柱状图wwwlehu6.vip乐虎官网

    
棒图有时又称之为”Bar”图,在ASP.NET中全部了一个新效能–绘图作用,通过此功效就可见根据要贯彻的图样的风貌来绘制,最终在客户端的浏览器中形成2个图纸,从而体现出图表来。

  本文正是介绍在ASP.NET页面中实现Bar图的具体方法。希望本篇文章能够让您精通到ASP.NET中一往无前的绘图成效,而我们通晓图表唯有在和数据库关联以往,才能够显得出更强大的优势。上面就来介绍在ASP.NET页面中从数据库中聊到数据,并以此数据形成Bar图的现实性完结格局。

 壹.本文程序设计和平运动行的软件条件:

  (一).微软集团视窗3000服务器版。

  (2).Visual Studio .Net正式版,.Net FrameWork SDK版本号3705。

  (叁).MDAC 二.6(Microsoft Data Acess Component)以上版本。

  贰.建立数据源

  为了便于起见,本文选用的数据库类型为本土数据库–Access
3000,借使您利用的是别的数据库类型,只需对下边介绍的顺序中的关于数据库连接的代码实行对应的修改就可以了。Access数据库名叫”db2.mdb”,在此数据库中只定义了一张数据表”MonthSale”,此表的结构如表01所示:

字段名称 类型 说明
ID 自动编号 主键 ,递增
YF 数字 销售月份
SL 数字 销量

         表01:MonthSale数据表的结构

  在概念完”db2.mdb”数据库中的”MonthSale”数据表后,在MonthSale数据表中依照表0二所示添加记录:

ID YF SL
1 1 12
2 2 5
3 3 7
4 4 20
5 5 16
6 6 10
7 7 19
8 8 8
9 9 7
10 10 13
11 11 11
12 12 15

      表02:Table0一数据表中的笔录情形

  在MonthSale数据表中添加完那1贰条记下后,保存”db2.mdb”数据库到C盘的根目录中。
**3.ASP.NET页面中完成多少Bar图的关键步骤及其完成格局:

**  在ASP.NET页面中贯彻多少Bar图首先必须化解二大难题:

  (一).首先要缓解在ASP.NET页面中实现数据库连接和从数据库中读取数据的主意。

  程序要落到实处从数据库中一条条的读取数据,则要运用奥莱DbDataReader类,奥莱DbDataReader类提供了从数据库中各样读取数据的格局。上面代码是接连C盘根目录下的”db贰.mdb”数据库,逐条读取MonthSale数据表中的记录,并把数量存放到定义的二个数组中:

 1wwwlehu6.vip乐虎官网 1string sRouter = “c:\\db2.mdb” ;
 2wwwlehu6.vip乐虎官网 2            //得到当前Access数据库在劳务器端的相对路径
 3wwwlehu6.vip乐虎官网 3
 4wwwlehu6.vip乐虎官网 4            string strCon = ” Provider = Microsoft.Jet.OLEDB.4.0; Data Source = ” + sRouter ;
 5wwwlehu6.vip乐虎官网 5            //创制贰个数据库连接
 6wwwlehu6.vip乐虎官网 6
 7wwwlehu6.vip乐虎官网 7            OleDbConnection myConn = new OleDbConnection ( strCon ) ;
 8wwwlehu6.vip乐虎官网 8            string strCom = ” SELECT YF ,SL FROM MonthSale ORDER BY YF” ;
 9wwwlehu6.vip乐虎官网 9            myConn.Open ( ) ;
10wwwlehu6.vip乐虎官网 10            OleDbCommand myCommand = new OleDbCommand ( strCom , myConn ) ;
11wwwlehu6.vip乐虎官网 11            OleDbDataReader myOleDbDataReader = myCommand.ExecuteReader ( ) ;
12wwwlehu6.vip乐虎官网 12            //创造奥莱DbDataReader实例,并以此实例来博取数据库中各条记下数据
13wwwlehu6.vip乐虎官网 13
14wwwlehu6.vip乐虎官网 14            int [ ] iXiaoSH = new int [ 12 ] ;
15wwwlehu6.vip乐虎官网 15            //定义二个数组,用以存放从数据库中读取的行销数据
16wwwlehu6.vip乐虎官网 16
17wwwlehu6.vip乐虎官网 17            string [ ] sMoth = new string [ 12 ] ;
18wwwlehu6.vip乐虎官网 18            //定义一个数组,用以存放从数据库中读取的销售月份
19wwwlehu6.vip乐虎官网 19
20wwwlehu6.vip乐虎官网 20            int iIndex = 0 ;
21wwwlehu6.vip乐虎官网 21            while ( myOleDbDataReader.Read ( ) ) 
22wwwlehu6.vip乐虎官网 22wwwlehu6.vip乐虎官网 23            wwwlehu6.vip乐虎官网 24{
23wwwlehu6.vip乐虎官网 25                iXiaoSH [ iIndex ] = myOleDbDataReader.GetInt32 ( 1 ) ;
24wwwlehu6.vip乐虎官网 26                sMoth [ iIndex ] = myOleDbDataReader.GetInt32 ( 0 ) . ToString ( ) + “月” ;
25wwwlehu6.vip乐虎官网 27                iIndex++ ;
26wwwlehu6.vip乐虎官网 28            }
27wwwlehu6.vip乐虎官网 29            //读取Table0一数据表中的各条数据,并存放在从前定义的三个数组中
28wwwlehu6.vip乐虎官网 30
29wwwlehu6.vip乐虎官网 31            myConn . Close ( ) ;
30wwwlehu6.vip乐虎官网 32            myOleDbDataReader . Close ( ) ;
31wwwlehu6.vip乐虎官网 33            //关闭各样财富

(二).依据取得数码,绘制图片,并展示出来:

  通过第三步,已经把从数据库中的读取的数量存放到”iXiaoSH”和”sMoth”数组中。下边就要化解根据那么些数据绘制出Bar图?首先先掌握一下在ASP.NET页面中即将完毕的数额Bar图的容颜。具体可如图0一所示:
wwwlehu6.vip乐虎官网 34
图01:在ASP.NET中落到实处的数量Bar图

  程序中把图0一所示逐项要素,依照区域分为了四个部分,那多少个部分将在背后介绍的先后中分头完毕:

  一. 创设整个图片

  首先要创设1Bitmap实例,并以此来构建贰个Graphics实例,Graphics实例提供了各类绘制方法,那样才能根据数据的渴求在Bitmap实例上制图各样图片。上边代码是在ASP.NET中创立Bitmap实例,并以此实例来营造Graphics实例的具体方法:

1wwwlehu6.vip乐虎官网 35Bitmap bm = new Bitmap ( 600 , 250 ) ;
2wwwlehu6.vip乐虎官网 36            //成立3个长短为600,宽带为250的Bitmap实例
3wwwlehu6.vip乐虎官网 37
4wwwlehu6.vip乐虎官网 38            Graphics g ;
5wwwlehu6.vip乐虎官网 39            g = Graphics.FromImage ( bm ) ;
6wwwlehu6.vip乐虎官网 40            //由此Bitmap实例创设Graphic实例
7wwwlehu6.vip乐虎官网 41
8wwwlehu6.vip乐虎官网 42            g . Clear ( Color.Snow) ;
9wwwlehu6.vip乐虎官网 43            //用Snow色彩为背景观填充此绘画图面

  1. 图01中的标题部分文字:

  这是通过Graphics实例中提供的DrawString方法以钦定的字体、颜色、在钦定的岗位绘制钦点的字符串。上面代码的功力是绘制图01中标题:

1wwwlehu6.vip乐虎官网 44g . DrawString ( ” ××集团××××年度销售情状总结表” , new Font ( “陶文” , 16 ) , Brushes . Black , new Point ( 五 , 伍 ) ) ;
2wwwlehu6.vip乐虎官网 45            //在写生图面的内定地点,以钦命的书体、钦赐的水彩绘制内定的字符串。即为图表标题
3wwwlehu6.vip乐虎官网 46

  1. 图01中的提醒区域,即图0第11中学的右上角显示的内容:

  要绘制那有个别剧情首先要定位,能够把那有的要绘制的剧情分为多个小一些:

  其一,是图0第11中学的”单位:万套”文字,那部分处理起来相比较简单,当选定要在图纸中输出的文字坐标后,调用Graphics实例中提供的DrawString方法就能够了;
  
  其二,是绘制图01中的小方块,首先要调用Graphics实例中的DrawRectangle方法在钦点地方,以钦命的颜料,绘制钦点大小的正方,然后再条约Graphics实例中的FillRectangle填充这些小方块就完了了;

  其3,是绘制小方块右侧的文字。同样要利用Graphics实例中提供的DrawString方法,只不过地点坐标和字体要拓展相应改变罢了。下边代码效用是绘制图0一右上角展现的剧情:

 1wwwlehu6.vip乐虎官网 47//以下代码是是落实图右上部
 2wwwlehu6.vip乐虎官网 48            Point myRec = new Point ( 535 , 30 ) ;
 3wwwlehu6.vip乐虎官网 49            Point myDec = new Point ( 560 , 26 ) ;
 4wwwlehu6.vip乐虎官网 50
 5wwwlehu6.vip乐虎官网 51            //以上是在图0第11中学为下边绘制定位
 6wwwlehu6.vip乐虎官网 52            g . DrawString ( “单位:万套” , new Font ( “宋体” , 9 ) , Brushes . Black , new Point ( 525 , 12 ) ) ;
 7wwwlehu6.vip乐虎官网 53   
 8wwwlehu6.vip乐虎官网 54   
 9wwwlehu6.vip乐虎官网 55            for ( int i = 0 ; i < sMoth.Length ; i++ ) 
10wwwlehu6.vip乐虎官网 56wwwlehu6.vip乐虎官网 57            wwwlehu6.vip乐虎官网 58{
11wwwlehu6.vip乐虎官网 59                g . DrawRectangle ( Pens.Black , myRec . X , myRec . Y , 20 , 10 ) ;
12wwwlehu6.vip乐虎官网 60                //绘制小方块
13wwwlehu6.vip乐虎官网 61
14wwwlehu6.vip乐虎官网 62                g . FillRectangle ( new SolidBrush ( GetColor ( i ) ) , myRec.X , myRec.Y , 20 , 10 ) ;
15wwwlehu6.vip乐虎官网 63                //填充小方块
16wwwlehu6.vip乐虎官网 64
17wwwlehu6.vip乐虎官网 65                g . DrawString ( sMoth [ i ] . ToString ( ) , new Font ( “宋体” , 9 ) , Brushes . Black , myDec ) ;
18wwwlehu6.vip乐虎官网 66                //绘制小方块左边的文字
19wwwlehu6.vip乐虎官网 67
20wwwlehu6.vip乐虎官网 68                myRec . Y += 15 ;
21wwwlehu6.vip乐虎官网 69                myDec . Y += 15 ;
22wwwlehu6.vip乐虎官网 70            }

  1. 依照从数据库中读取的数量,绘制数据Bar图:

  此部分与第贰局地比较像样,最根本的差距在于,绘制的岗位不平等,下边代码是在图0第11中学绘制数据Bar图,并提醒Bar图所代表的数目:

 

 1wwwlehu6.vip乐虎官网 71//以下代码是绘制Bar图,及其销售数据
 2wwwlehu6.vip乐虎官网 72            int iBarWidth = 40 ;
 3wwwlehu6.vip乐虎官网 73            int scale = 10 ;
 4wwwlehu6.vip乐虎官网 74            for ( int i = 0 ; i < iXiaoSH . Length ; i++ ) 
 5wwwlehu6.vip乐虎官网 75wwwlehu6.vip乐虎官网 76            wwwlehu6.vip乐虎官网 77{
 6wwwlehu6.vip乐虎官网 78                g . DrawRectangle ( Pens.Black, ( i * iBarWidth ) + 15 , 250 – ( iXiaoSH [ i ] * scale ) , 20 , ( iXiaoSH [ i ] * scale ) + 5 ) ;
 7wwwlehu6.vip乐虎官网 79                //绘制Bar图
 8wwwlehu6.vip乐虎官网 80
 9wwwlehu6.vip乐虎官网 81                g . FillRectangle ( new SolidBrush (GetColor ( i )) , ( i * iBarWidth ) + 15 , 250 – ( iXiaoSH [ i ] * scale ) , 20 , ( iXiaoSH [ i ] * scale ) + 5 ) ;
10wwwlehu6.vip乐虎官网 82                //以钦命的色彩填充Bar图
11wwwlehu6.vip乐虎官网 83
12wwwlehu6.vip乐虎官网 84                g . DrawString ( iXiaoSH [ i ] . ToString ( ) , new Font ( “宋体” , 9 ) , Brushes . Black , ( i * iBarWidth ) + 20 , 235 – ( iXiaoSH [ i ] * scale ) ) ;
13wwwlehu6.vip乐虎官网 85                //显示Bar图代表的数码
14wwwlehu6.vip乐虎官网 86            }

  1. 制图图片边框,并摇身一变Jpeg文件格式在客户端显示:

  绘制图片边框,使用的Graphics实例中的DrawRectangle方法。至于选拔Jpeg格式文件在客户端体现,是因为Jpeg文件占用的半空中较小,利于互连网传送。上面代码是绘制图0第11中学的边框,并形成Jpeg文件:

1wwwlehu6.vip乐虎官网 87//以下代码是绘制边框,并摇身一变Jpeg文件,供浏览器突显出来
2wwwlehu6.vip乐虎官网 88            Pen p = new Pen ( Color.Black , 2 ) ;
3wwwlehu6.vip乐虎官网 89            g . DrawRectangle ( p , 1 , 1 , 598 , 248 ) ;
4wwwlehu6.vip乐虎官网 90            bm.Save ( Response . OutputStream , ImageFormat.Gif) ;

肆.ASP.NET页面中达成数量Bar图实现步骤:

  精晓了上边的关键步骤及其化解格局后,在ASP.NET完结数量Bar相对就便于许多了,上面是ASP.NET页面中贯彻多少Bar图的有血有肉落到实处步骤,在开发工具上采纳的是Visual
Stuido .Net公司构建版,选用的支付语言是C#。

  1. 启动Visual Studio .Net

  二. 增选菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框

  3. 将【项目类别】设置为【Visual C#项目】

  四. 将【模板】设置为【ASP.NET Web 应用程序】

  5.
在【地点】的文本框中输入”http://localhost/Bar"。然后单击【确定】按钮,这样在Visual
Studio
.Net就会在脚下项目文件所在目录中创立一个名为”WebBar德姆o”文件夹,里面存放是此项指标类别文件,项目中的别的文件存放的职分是总括机Internet新闻服务的默许的Web站点所在的目录中新建的七个称谓为”WebBar德姆o”的文本夹中。具体如图02所示:
wwwlehu6.vip乐虎官网 91
 图0二:新建一个ASP.NET项目对话框

  陆. 把Visual Studio
.Net的近来窗口切换来WebForm的代码编辑窗口,即:WebForm壹.aspx.cs文件的编辑撰写窗口。

  7.
在WebForm壹.aspx.cs文件首部,用下列代码替换WebForm一.aspx.cs中程导弹入命名空间的代码

1wwwlehu6.vip乐虎官网 92//上边程序中应用的ImageFormat类所在的命名空间
2wwwlehu6.vip乐虎官网 93using System.Drawing.Imaging;
3wwwlehu6.vip乐虎官网 94//下边程序中运用到有关数据库方面包车型大巴类所在的命名空间
4wwwlehu6.vip乐虎官网 95using System.Data.OleDb;

 八.
WebForm1.aspx.cs文件中的Page_Load事件处理代码中添加下列代码,下列代码的效应是开拓数据库,读取数据,并以此数据形成数据Bar图:

 1wwwlehu6.vip乐虎官网 96private void Page_Load(object sender, System.EventArgs e)
 2wwwlehu6.vip乐虎官网 97wwwlehu6.vip乐虎官网 98        wwwlehu6.vip乐虎官网 99{
 3wwwlehu6.vip乐虎官网 100            // 在此处放置用户代码以开头化页面
 4wwwlehu6.vip乐虎官网 101
 5wwwlehu6.vip乐虎官网 102            string sRouter = “c:\\db2.mdb” ;
 6wwwlehu6.vip乐虎官网 103            //获得当前Access数据库在劳务器端的相对路径
 7wwwlehu6.vip乐虎官网 104
 8wwwlehu6.vip乐虎官网 105            string strCon = ” Provider = Microsoft.Jet.OLEDB.4.0; Data Source = ” + sRouter ;
 9wwwlehu6.vip乐虎官网 106            //创立3个数据库连接
10wwwlehu6.vip乐虎官网 107
11wwwlehu6.vip乐虎官网 108            OleDbConnection myConn = new OleDbConnection ( strCon ) ;
12wwwlehu6.vip乐虎官网 109            string strCom = ” SELECT YF ,SL FROM MonthSale ORDER BY YF” ;
13wwwlehu6.vip乐虎官网 110            myConn.Open ( ) ;
14wwwlehu6.vip乐虎官网 111            OleDbCommand myCommand = new OleDbCommand ( strCom , myConn ) ;
15wwwlehu6.vip乐虎官网 112            OleDbDataReader myOleDbDataReader = myCommand.ExecuteReader ( ) ;
16wwwlehu6.vip乐虎官网 113            //制造奥莱DbDataReader实例,并以此实例来收获数据库中各条记下数据
17wwwlehu6.vip乐虎官网 114
18wwwlehu6.vip乐虎官网 115            int [ ] iXiaoSH = new int [ 12 ] ;
19wwwlehu6.vip乐虎官网 116            //定义一个数组,用以存放从数据库中读取的销售数量
20wwwlehu6.vip乐虎官网 117
21wwwlehu6.vip乐虎官网 118            string [ ] sMoth = new string [ 12 ] ;
22wwwlehu6.vip乐虎官网 119            //定义一个数组,用以存放从数据库中读取的销售月份
23wwwlehu6.vip乐虎官网 120
24wwwlehu6.vip乐虎官网 121            int iIndex = 0 ;
25wwwlehu6.vip乐虎官网 122            while ( myOleDbDataReader.Read ( ) ) 
26wwwlehu6.vip乐虎官网 123wwwlehu6.vip乐虎官网 124            wwwlehu6.vip乐虎官网 125{
27wwwlehu6.vip乐虎官网 126                iXiaoSH [ iIndex ] = myOleDbDataReader.GetInt32 ( 1 ) ;
28wwwlehu6.vip乐虎官网 127                sMoth [ iIndex ] = myOleDbDataReader.GetInt32 ( 0 ) . ToString ( ) + “月” ;
29wwwlehu6.vip乐虎官网 128                iIndex++ ;
30wwwlehu6.vip乐虎官网 129            }
31wwwlehu6.vip乐虎官网 130            //读取Table0一数据表中的各条数据,并存放在以前概念的二个数组中
32wwwlehu6.vip乐虎官网 131
33wwwlehu6.vip乐虎官网 132            myConn . Close ( ) ;
34wwwlehu6.vip乐虎官网 133            myOleDbDataReader . Close ( ) ;
35wwwlehu6.vip乐虎官网 134            //关闭各个能源
36wwwlehu6.vip乐虎官网 135
37wwwlehu6.vip乐虎官网 136            Bitmap bm = new Bitmap ( 600 , 250 ) ;
38wwwlehu6.vip乐虎官网 137            //创制1个尺寸为600,宽带为250的Bitmap实例
39wwwlehu6.vip乐虎官网 138
40wwwlehu6.vip乐虎官网 139            Graphics g ;
41wwwlehu6.vip乐虎官网 140            g = Graphics.FromImage ( bm ) ;
42wwwlehu6.vip乐虎官网 141            //由此Bitmap实例创制Graphic实例
43wwwlehu6.vip乐虎官网 142
44wwwlehu6.vip乐虎官网 143            g . Clear ( Color.Snow) ;
45wwwlehu6.vip乐虎官网 144            //用Snow色彩为背景观填充此绘画图面
46wwwlehu6.vip乐虎官网 145
47wwwlehu6.vip乐虎官网 146            g . DrawString ( ” ××集团××××年度销售情况总结表” , new Font ( “行书” , 16 ) , Brushes . Black , new Point ( 5 , 伍 ) ) ;
48wwwlehu6.vip乐虎官网 147            //在绘画图面包车型客车钦赐地点,以钦点的字体、钦赐的水彩绘制钦赐的字符串。即为图表标题
49wwwlehu6.vip乐虎官网 148
50wwwlehu6.vip乐虎官网 149            //以下代码是是落成图右上部
51wwwlehu6.vip乐虎官网 150            Point myRec = new Point ( 535 , 30 ) ;
52wwwlehu6.vip乐虎官网 151            Point myDec = new Point ( 560 , 26 ) ;
53wwwlehu6.vip乐虎官网 152
54wwwlehu6.vip乐虎官网 153            //以上是在图01中为下边绘制定位
55wwwlehu6.vip乐虎官网 154            g . DrawString ( “单位:万套” , new Font ( “宋体” , 9 ) , Brushes . Black , new Point ( 525 , 12 ) ) ;
56wwwlehu6.vip乐虎官网 155   
57wwwlehu6.vip乐虎官网 156   
58wwwlehu6.vip乐虎官网 157            for ( int i = 0 ; i < sMoth.Length ; i++ ) 
59wwwlehu6.vip乐虎官网 158wwwlehu6.vip乐虎官网 159            wwwlehu6.vip乐虎官网 160{
60wwwlehu6.vip乐虎官网 161                g . DrawRectangle ( Pens.Black , myRec . X , myRec . Y , 20 , 10 ) ;
61wwwlehu6.vip乐虎官网 162                //绘制小方块
62wwwlehu6.vip乐虎官网 163
63wwwlehu6.vip乐虎官网 164                g . FillRectangle ( new SolidBrush ( GetColor ( i ) ) , myRec.X , myRec.Y , 20 , 10 ) ;
64wwwlehu6.vip乐虎官网 165                //填充小方块
65wwwlehu6.vip乐虎官网 166
66wwwlehu6.vip乐虎官网 167                g . DrawString ( sMoth [ i ] . ToString ( ) , new Font ( “宋体” , 9 ) , Brushes . Black , myDec ) ;
67wwwlehu6.vip乐虎官网 168                //绘制小方块左侧的文字
68wwwlehu6.vip乐虎官网 169
69wwwlehu6.vip乐虎官网 170                myRec . Y += 15 ;
70wwwlehu6.vip乐虎官网 171                myDec . Y += 15 ;
71wwwlehu6.vip乐虎官网 172            }
72wwwlehu6.vip乐虎官网 173
73wwwlehu6.vip乐虎官网 174            //以下代码是绘制Bar图,及其销售数额
74wwwlehu6.vip乐虎官网 175            int iBarWidth = 40 ;
75wwwlehu6.vip乐虎官网 176            int scale = 10 ;
76wwwlehu6.vip乐虎官网 177            for ( int i = 0 ; i < iXiaoSH . Length ; i++ ) 
77wwwlehu6.vip乐虎官网 178wwwlehu6.vip乐虎官网 179            wwwlehu6.vip乐虎官网 180{
78wwwlehu6.vip乐虎官网 181                g . DrawRectangle ( Pens.Black, ( i * iBarWidth ) + 15 , 250 – ( iXiaoSH [ i ] * scale ) , 20 , ( iXiaoSH [ i ] * scale ) + 5 ) ;
79wwwlehu6.vip乐虎官网 182                //绘制Bar图
80wwwlehu6.vip乐虎官网 183
81wwwlehu6.vip乐虎官网 184                g . FillRectangle ( new SolidBrush (GetColor ( i )) , ( i * iBarWidth ) + 15 , 250 – ( iXiaoSH [ i ] * scale ) , 20 , ( iXiaoSH [ i ] * scale ) + 5 ) ;
82wwwlehu6.vip乐虎官网 185                //以钦定的情调填充Bar图
83wwwlehu6.vip乐虎官网 186
84wwwlehu6.vip乐虎官网 187                g . DrawString ( iXiaoSH [ i ] . ToString ( ) , new Font ( “宋体” , 9 ) , Brushes . Black , ( i * iBarWidth ) + 20 , 235 – ( iXiaoSH [ i ] * scale ) ) ;
85wwwlehu6.vip乐虎官网 188                //显示Bar图代表的多寡
86wwwlehu6.vip乐虎官网 189            }
87wwwlehu6.vip乐虎官网 190
88wwwlehu6.vip乐虎官网 191            //以下代码是绘制边框,并摇身壹变Jpeg文件,供浏览器彰显出来
89wwwlehu6.vip乐虎官网 192            Pen p = new Pen ( Color.Black , 2 ) ;
90wwwlehu6.vip乐虎官网 193            g . DrawRectangle ( p , 1 , 1 , 598 , 248 ) ;
91wwwlehu6.vip乐虎官网 194            bm.Save ( Response . OutputStream , ImageFormat.Gif) ;
92wwwlehu6.vip乐虎官网 195        }

玖.
WebForm1.aspx.cs文件中的InitializeComponent进程之后,添加下列代码,下列代码的功力是概念三个称号为GetColor函数,此函数的坚守依照索引号获得相应的体系颜色:

 1wwwlehu6.vip乐虎官网 196wwwlehu6.vip乐虎官网 197/**//// <summary>
 2wwwlehu6.vip乐虎官网 198        /// 获取颜色
 3wwwlehu6.vip乐虎官网 199        /// </summary>
 4wwwlehu6.vip乐虎官网 200        /// <param name=”itemIndex”>数组的索引</param>
 5wwwlehu6.vip乐虎官网 201        /// <returns></returns>
 6wwwlehu6.vip乐虎官网 202        private Color GetColor ( int itemIndex ) 
 7wwwlehu6.vip乐虎官网 203wwwlehu6.vip乐虎官网 204        wwwlehu6.vip乐虎官网 205{
 8wwwlehu6.vip乐虎官网 206             Color MyColor ;
 9wwwlehu6.vip乐虎官网 207             int i = itemIndex ;
10wwwlehu6.vip乐虎官网 208            switch (i) 
11wwwlehu6.vip乐虎官网 209wwwlehu6.vip乐虎官网 210             wwwlehu6.vip乐虎官网 211{
12wwwlehu6.vip乐虎官网 212                  case 0 :
13wwwlehu6.vip乐虎官网 213                   MyColor = Color.Green;
14wwwlehu6.vip乐虎官网 214                   return MyColor;
15wwwlehu6.vip乐虎官网 215                  case 1 :
16wwwlehu6.vip乐虎官网 216                   MyColor = Color.Red;
17wwwlehu6.vip乐虎官网 217                    return MyColor;
18wwwlehu6.vip乐虎官网 218                  case 2:
19wwwlehu6.vip乐虎官网 219                   MyColor = Color.Yellow;
20wwwlehu6.vip乐虎官网 220                   return MyColor;
21wwwlehu6.vip乐虎官网 221                  case 3 :
22wwwlehu6.vip乐虎官网 222                   MyColor = Color.Blue;
23wwwlehu6.vip乐虎官网 223                   return MyColor;
24wwwlehu6.vip乐虎官网 224                  case 4 :
25wwwlehu6.vip乐虎官网 225                   MyColor = Color.Orange;
26wwwlehu6.vip乐虎官网 226                   return MyColor;
27wwwlehu6.vip乐虎官网 227                 case 5 :
28wwwlehu6.vip乐虎官网 228                   MyColor = Color.Aqua;
29wwwlehu6.vip乐虎官网 229                   return MyColor;
30wwwlehu6.vip乐虎官网 230                  case 6:
31wwwlehu6.vip乐虎官网 231                   MyColor = Color.SkyBlue;
32wwwlehu6.vip乐虎官网 232                   return MyColor;
33wwwlehu6.vip乐虎官网 233                  case 7:
34wwwlehu6.vip乐虎官网 234                   MyColor = Color.DeepPink;
35wwwlehu6.vip乐虎官网 235                   return MyColor;
36wwwlehu6.vip乐虎官网 236                  case 8:
37wwwlehu6.vip乐虎官网 237                   MyColor = Color.Azure;
38wwwlehu6.vip乐虎官网 238                   return MyColor;
39wwwlehu6.vip乐虎官网 239                  case 9:
40wwwlehu6.vip乐虎官网 240                   MyColor = Color.Brown;
41wwwlehu6.vip乐虎官网 241                   return MyColor;
42wwwlehu6.vip乐虎官网 242                  case 10:
43wwwlehu6.vip乐虎官网 243                   MyColor = Color.Pink;
44wwwlehu6.vip乐虎官网 244                   return MyColor;
45wwwlehu6.vip乐虎官网 245                  case 11:
46wwwlehu6.vip乐虎官网 246                   MyColor = Color.BurlyWood;
47wwwlehu6.vip乐虎官网 247                   return MyColor;
48wwwlehu6.vip乐虎官网 248                  case 12:
49wwwlehu6.vip乐虎官网 249                   MyColor = Color.Chartreuse;
50wwwlehu6.vip乐虎官网 250                   return MyColor;
51wwwlehu6.vip乐虎官网 251                  default:
52wwwlehu6.vip乐虎官网 252                   MyColor = Color.Pink;
53wwwlehu6.vip乐虎官网 253                   return MyColor;
54wwwlehu6.vip乐虎官网 254            }
55wwwlehu6.vip乐虎官网 255        }

10.
迄今结束,在上述手续都没有错实施后,在ASP.NET页面中完毕数量Bar图的整个工作就到位了。在明显下边建立的Access数据库”db.mdb”位于C盘的根目录中之后,单击神速键F5,就足以拿走如图0一所示的数目Bar图了。

  五.总结:

  在ASP.NET页面中贯彻各类图片,其所使用的正是ASP.NET的绘图成效,而那一效果是ASP.NET的前二个版本所不具有的。上边的这一个介绍,不仅介绍了在ASP.NET绘制各个图片的艺术,还介绍了数据库连接和从数据库中逐条读取记录的格局。这几个方法对你掌握和操纵在ASP.NET中操作数据库是万分实用的。

一体化的事例程序:

  1wwwlehu6.vip乐虎官网 256using System;
  2wwwlehu6.vip乐虎官网 257using System.Collections;
  3wwwlehu6.vip乐虎官网 258using System.ComponentModel;
  4wwwlehu6.vip乐虎官网 259using System.Data;
  5wwwlehu6.vip乐虎官网 260using System.Drawing;
  6wwwlehu6.vip乐虎官网 261using System.Web;
  7wwwlehu6.vip乐虎官网 262using System.Web.SessionState;
  8wwwlehu6.vip乐虎官网 263using System.Web.UI;
  9wwwlehu6.vip乐虎官网 264using System.Web.UI.WebControls;
 10wwwlehu6.vip乐虎官网 265using System.Web.UI.HtmlControls;
 11wwwlehu6.vip乐虎官网 266
 12wwwlehu6.vip乐虎官网 267//上面程序中选用的ImageFormat类所在的命名空间
 13wwwlehu6.vip乐虎官网 268using System.Drawing.Imaging;
 14wwwlehu6.vip乐虎官网 269//上面程序中选择到有关数据库方面包车型大巴类所在的命名空间
 15wwwlehu6.vip乐虎官网 270using System.Data.OleDb;
 16wwwlehu6.vip乐虎官网 271
 17wwwlehu6.vip乐虎官网 272namespace WebBarDemo
 18wwwlehu6.vip乐虎官网 273wwwlehu6.vip乐虎官网 274wwwlehu6.vip乐虎官网 275{
 19wwwlehu6.vip乐虎官网 276wwwlehu6.vip乐虎官网 277    /**//// <summary>
 20wwwlehu6.vip乐虎官网 278    /// WebForm一 的摘要表达。
 21wwwlehu6.vip乐虎官网 279    /// </summary>
 22wwwlehu6.vip乐虎官网 280    public class WebForm1 : System.Web.UI.Page
 23wwwlehu6.vip乐虎官网 281wwwlehu6.vip乐虎官网 282    wwwlehu6.vip乐虎官网 283{
 24wwwlehu6.vip乐虎官网 284        private void Page_Load(object sender, System.EventArgs e)
 25wwwlehu6.vip乐虎官网 285wwwlehu6.vip乐虎官网 286        wwwlehu6.vip乐虎官网 287{
 26wwwlehu6.vip乐虎官网 288            // 在那边放置用户代码以开头化页面
 27wwwlehu6.vip乐虎官网 289
 28wwwlehu6.vip乐虎官网 290            string sRouter = “c:\\db2.mdb” ;
 29wwwlehu6.vip乐虎官网 291            //获得当前Access数据库在劳务器端的相对路径
 30wwwlehu6.vip乐虎官网 292
 31wwwlehu6.vip乐虎官网 293            string strCon = ” Provider = Microsoft.Jet.OLEDB.4.0; Data Source = ” + sRouter ;
 32wwwlehu6.vip乐虎官网 294            //创制叁个数据库连接
 33wwwlehu6.vip乐虎官网 295
 34wwwlehu6.vip乐虎官网 296            OleDbConnection myConn = new OleDbConnection ( strCon ) ;
 35wwwlehu6.vip乐虎官网 297            string strCom = ” SELECT YF ,SL FROM MonthSale ORDER BY YF” ;
 36wwwlehu6.vip乐虎官网 298            myConn.Open ( ) ;
 37wwwlehu6.vip乐虎官网 299            OleDbCommand myCommand = new OleDbCommand ( strCom , myConn ) ;
 38wwwlehu6.vip乐虎官网 300            OleDbDataReader myOleDbDataReader = myCommand.ExecuteReader ( ) ;
 39wwwlehu6.vip乐虎官网 301            //成立奥莱DbDataReader实例,并以此实例来获取数据库中各条记下数据
 40wwwlehu6.vip乐虎官网 302
 41wwwlehu6.vip乐虎官网 303            int [ ] iXiaoSH = new int [ 12 ] ;
 42wwwlehu6.vip乐虎官网 304            //定义三个数组,用以存放从数据库中读取的行销数目
 43wwwlehu6.vip乐虎官网 305
 44wwwlehu6.vip乐虎官网 306            string [ ] sMoth = new string [ 12 ] ;
 45wwwlehu6.vip乐虎官网 307            //定义3个数组,用以存放从数据库中读取的销售月份
 46wwwlehu6.vip乐虎官网 308
 47wwwlehu6.vip乐虎官网 309            int iIndex = 0 ;
 48wwwlehu6.vip乐虎官网 310            while ( myOleDbDataReader.Read ( ) ) 
 49wwwlehu6.vip乐虎官网 311wwwlehu6.vip乐虎官网 312            wwwlehu6.vip乐虎官网 313{
 50wwwlehu6.vip乐虎官网 314                iXiaoSH [ iIndex ] = myOleDbDataReader.GetInt32 ( 1 ) ;
 51wwwlehu6.vip乐虎官网 315                sMoth [ iIndex ] = myOleDbDataReader.GetInt32 ( 0 ) . ToString ( ) + “月” ;
 52wwwlehu6.vip乐虎官网 316                iIndex++ ;
 53wwwlehu6.vip乐虎官网 317            }
 54wwwlehu6.vip乐虎官网 318            //读取Table0一数据表中的各条数据,并存放在此前概念的一个数组中
 55wwwlehu6.vip乐虎官网 319
 56wwwlehu6.vip乐虎官网 320            myConn . Close ( ) ;
 57wwwlehu6.vip乐虎官网 321            myOleDbDataReader . Close ( ) ;
 58wwwlehu6.vip乐虎官网 322            //关闭各个能源
 59wwwlehu6.vip乐虎官网 323
 60wwwlehu6.vip乐虎官网 324            Bitmap bm = new Bitmap ( 600 , 250 ) ;
 61wwwlehu6.vip乐虎官网 325            //创制二个尺寸为600,宽带为250的Bitmap实例
 62wwwlehu6.vip乐虎官网 326
 63wwwlehu6.vip乐虎官网 327            Graphics g ;
 64wwwlehu6.vip乐虎官网 328            g = Graphics.FromImage ( bm ) ;
 65wwwlehu6.vip乐虎官网 329            //由此Bitmap实例创设Graphic实例
 66wwwlehu6.vip乐虎官网 330
 67wwwlehu6.vip乐虎官网 331            g . Clear ( Color.Snow) ;
 68wwwlehu6.vip乐虎官网 332            //用斯诺色彩为背景观填充此绘画图面
 69wwwlehu6.vip乐虎官网 333
 70wwwlehu6.vip乐虎官网 334            g . DrawString ( ” ××集团××××年度销售场合总计表” , new Font ( “石籀文” , 16 ) , Brushes . Black , new Point ( 伍 , 5 ) ) ;
 71wwwlehu6.vip乐虎官网 335            //在画画图面包车型地铁内定地点,以钦定的字体、内定的颜料绘制钦定的字符串。即为图表标题
 72wwwlehu6.vip乐虎官网 336
 73wwwlehu6.vip乐虎官网 337            //以下代码是是落实图右上部
 74wwwlehu6.vip乐虎官网 338            Point myRec = new Point ( 535 , 30 ) ;
 75wwwlehu6.vip乐虎官网 339            Point myDec = new Point ( 560 , 26 ) ;
 76wwwlehu6.vip乐虎官网 340
 77wwwlehu6.vip乐虎官网 341            //以上是在图0第11中学为下面绘制定位
 78wwwlehu6.vip乐虎官网 342            g . DrawString ( “单位:万套” , new Font ( “宋体” , 9 ) , Brushes . Black , new Point ( 525 , 12 ) ) ;
 79wwwlehu6.vip乐虎官网 343   
 80wwwlehu6.vip乐虎官网 344   
 81wwwlehu6.vip乐虎官网 345            for ( int i = 0 ; i < sMoth.Length ; i++ ) 
 82wwwlehu6.vip乐虎官网 346wwwlehu6.vip乐虎官网 347            wwwlehu6.vip乐虎官网 348{
 83wwwlehu6.vip乐虎官网 349                g . DrawRectangle ( Pens.Black , myRec . X , myRec . Y , 20 , 10 ) ;
 84wwwlehu6.vip乐虎官网 350                //绘制小方块
 85wwwlehu6.vip乐虎官网 351
 86wwwlehu6.vip乐虎官网 352                g . FillRectangle ( new SolidBrush ( GetColor ( i ) ) , myRec.X , myRec.Y , 20 , 10 ) ;
 87wwwlehu6.vip乐虎官网 353                //填充小方块
 88wwwlehu6.vip乐虎官网 354
 89wwwlehu6.vip乐虎官网 355                g . DrawString ( sMoth [ i ] . ToString ( ) , new Font ( “宋体” , 9 ) , Brushes . Black , myDec ) ;
 90wwwlehu6.vip乐虎官网 356                //绘制小方块左侧的文字
 91wwwlehu6.vip乐虎官网 357
 92wwwlehu6.vip乐虎官网 358                myRec . Y += 15 ;
 93wwwlehu6.vip乐虎官网 359                myDec . Y += 15 ;
 94wwwlehu6.vip乐虎官网 360            }
 95wwwlehu6.vip乐虎官网 361
wwwlehu6.vip乐虎官网, 96wwwlehu6.vip乐虎官网 362            //以下代码是绘制Bar图,及其销售数据
 97wwwlehu6.vip乐虎官网 363            int iBarWidth = 40 ;
 98wwwlehu6.vip乐虎官网 364            int scale = 10 ;
 99wwwlehu6.vip乐虎官网 365            for ( int i = 0 ; i < iXiaoSH . Length ; i++ ) 
100wwwlehu6.vip乐虎官网 366wwwlehu6.vip乐虎官网 367            wwwlehu6.vip乐虎官网 368{
101wwwlehu6.vip乐虎官网 369                g . DrawRectangle ( Pens.Black, ( i * iBarWidth ) + 15 , 250 – ( iXiaoSH [ i ] * scale ) , 20 , ( iXiaoSH [ i ] * scale ) + 5 ) ;
102wwwlehu6.vip乐虎官网 370                //绘制Bar图
103wwwlehu6.vip乐虎官网 371
104wwwlehu6.vip乐虎官网 372                g . FillRectangle ( new SolidBrush (GetColor ( i )) , ( i * iBarWidth ) + 15 , 250 – ( iXiaoSH [ i ] * scale ) , 20 , ( iXiaoSH [ i ] * scale ) + 5 ) ;
105wwwlehu6.vip乐虎官网 373                //以钦点的色彩填充Bar图
106wwwlehu6.vip乐虎官网 374
107wwwlehu6.vip乐虎官网 375                g . DrawString ( iXiaoSH [ i ] . ToString ( ) , new Font ( “宋体” , 9 ) , Brushes . Black , ( i * iBarWidth ) + 20 , 235 – ( iXiaoSH [ i ] * scale ) ) ;
108wwwlehu6.vip乐虎官网 376                //突显Bar图代表的数额
109wwwlehu6.vip乐虎官网 377            }
110wwwlehu6.vip乐虎官网 378
111wwwlehu6.vip乐虎官网 379            //以下代码是绘制边框,并形成Jpeg文件,供浏览器彰显出来
112wwwlehu6.vip乐虎官网 380            Pen p = new Pen ( Color.Black , 2 ) ;
113wwwlehu6.vip乐虎官网 381            g . DrawRectangle ( p , 1 , 1 , 598 , 248 ) ;
114wwwlehu6.vip乐虎官网 382            bm.Save ( Response . OutputStream , ImageFormat.Gif) ;
115wwwlehu6.vip乐虎官网 383        }
116wwwlehu6.vip乐虎官网 384
117wwwlehu6.vip乐虎官网 385wwwlehu6.vip乐虎官网 386        Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
118wwwlehu6.vip乐虎官网 387        override protected void OnInit(EventArgs e)
119wwwlehu6.vip乐虎官网 388wwwlehu6.vip乐虎官网 389        wwwlehu6.vip乐虎官网 390{
120wwwlehu6.vip乐虎官网 391            //
121wwwlehu6.vip乐虎官网 392            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
122wwwlehu6.vip乐虎官网 393            //
123wwwlehu6.vip乐虎官网 394            InitializeComponent();
124wwwlehu6.vip乐虎官网 395            base.OnInit(e);
125wwwlehu6.vip乐虎官网 396        }
126wwwlehu6.vip乐虎官网 397        
127wwwlehu6.vip乐虎官网 398wwwlehu6.vip乐虎官网 399        /**//// <summary>
128wwwlehu6.vip乐虎官网 400        /// 设计器扶助所需的秘籍 – 不要使用代码编辑器修改
129wwwlehu6.vip乐虎官网 401        /// 此办法的始末。
130wwwlehu6.vip乐虎官网 402        /// </summary>
131wwwlehu6.vip乐虎官网 403        private void InitializeComponent()
132wwwlehu6.vip乐虎官网 404wwwlehu6.vip乐虎官网 405        wwwlehu6.vip乐虎官网 406{    
133wwwlehu6.vip乐虎官网 407            this.Load += new System.EventHandler(this.Page_Load);
134wwwlehu6.vip乐虎官网 408        }
135wwwlehu6.vip乐虎官网 409        #endregion
136wwwlehu6.vip乐虎官网 410        
137wwwlehu6.vip乐虎官网 411wwwlehu6.vip乐虎官网 412        /**//// <summary>
138wwwlehu6.vip乐虎官网 413        /// 获取颜色
139wwwlehu6.vip乐虎官网 414        /// </summary>
140wwwlehu6.vip乐虎官网 415        /// <param name=”itemIndex”>数组的索引</param>
141wwwlehu6.vip乐虎官网 416        /// <returns></returns>
142wwwlehu6.vip乐虎官网 417        private Color GetColor ( int itemIndex ) 
143wwwlehu6.vip乐虎官网 418wwwlehu6.vip乐虎官网 419        wwwlehu6.vip乐虎官网 420{
144wwwlehu6.vip乐虎官网 421             Color MyColor ;
145wwwlehu6.vip乐虎官网 422             int i = itemIndex ;
146wwwlehu6.vip乐虎官网 423            switch (i) 
147wwwlehu6.vip乐虎官网 424wwwlehu6.vip乐虎官网 425             wwwlehu6.vip乐虎官网 426{
148wwwlehu6.vip乐虎官网 427                  case 0 :
149wwwlehu6.vip乐虎官网 428                   MyColor = Color.Green;
150wwwlehu6.vip乐虎官网 429                   return MyColor;
151wwwlehu6.vip乐虎官网 430                  case 1 :
152wwwlehu6.vip乐虎官网 431                   MyColor = Color.Red;
153wwwlehu6.vip乐虎官网 432                    return MyColor;
154wwwlehu6.vip乐虎官网 433                  case 2:
155wwwlehu6.vip乐虎官网 434                   MyColor = Color.Yellow;
156wwwlehu6.vip乐虎官网 435                   return MyColor;
157wwwlehu6.vip乐虎官网 436                  case 3 :
158wwwlehu6.vip乐虎官网 437                   MyColor = Color.Blue;
159wwwlehu6.vip乐虎官网 438                   return MyColor;
160wwwlehu6.vip乐虎官网 439                  case 4 :
161wwwlehu6.vip乐虎官网 440                   MyColor = Color.Orange;
162wwwlehu6.vip乐虎官网 441                   return MyColor;
163wwwlehu6.vip乐虎官网 442                 case 5 :
164wwwlehu6.vip乐虎官网 443                   MyColor = Color.Aqua;
165wwwlehu6.vip乐虎官网 444                   return MyColor;
166wwwlehu6.vip乐虎官网 445                  case 6:
167wwwlehu6.vip乐虎官网 446                   MyColor = Color.SkyBlue;
168wwwlehu6.vip乐虎官网 447                   return MyColor;
169wwwlehu6.vip乐虎官网 448                  case 7:
170wwwlehu6.vip乐虎官网 449                   MyColor = Color.DeepPink;
171wwwlehu6.vip乐虎官网 450                   return MyColor;
172wwwlehu6.vip乐虎官网 451                  case 8:
173wwwlehu6.vip乐虎官网 452                   MyColor = Color.Azure;
174wwwlehu6.vip乐虎官网 453                   return MyColor;
175wwwlehu6.vip乐虎官网 454                  case 9:
176wwwlehu6.vip乐虎官网 455                   MyColor = Color.Brown;
177wwwlehu6.vip乐虎官网 456                   return MyColor;
178wwwlehu6.vip乐虎官网 457                  case 10:
179wwwlehu6.vip乐虎官网 458                   MyColor = Color.Pink;
180wwwlehu6.vip乐虎官网 459                   return MyColor;
181wwwlehu6.vip乐虎官网 460                  case 11:
182wwwlehu6.vip乐虎官网 461                   MyColor = Color.BurlyWood;
183wwwlehu6.vip乐虎官网 462                   return MyColor;
184wwwlehu6.vip乐虎官网 463                  case 12:
185wwwlehu6.vip乐虎官网 464                   MyColor = Color.Chartreuse;
186wwwlehu6.vip乐虎官网 465                   return MyColor;
187wwwlehu6.vip乐虎官网 466                  default:
188wwwlehu6.vip乐虎官网 467                   MyColor = Color.Pink;
189wwwlehu6.vip乐虎官网 468                   return MyColor;
190wwwlehu6.vip乐虎官网 469            }
191wwwlehu6.vip乐虎官网 470        }
192wwwlehu6.vip乐虎官网 471
193wwwlehu6.vip乐虎官网 472    }
194wwwlehu6.vip乐虎官网 473}
195wwwlehu6.vip乐虎官网 474

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图