在ASPNET页面中实现数据棒图

2019-06-20 04:08:19 来源: 西宁信息港

  8. 文件中的Page_Load事件处理代码中添加下列代码,下列代码的作用是打开数据库,读取数据,并以此数据形成数据Bar图:

  string sRouter = "c:\\b" ;

  //获得当前Access数据库在服务器端的路径

  string strCon = " Provider = EDB.4.0; Data Source = " + sRouter ;

  //创建一个数据库连接

  OleDbConnection myConn = new OleDbConnection ( strCon ) ;

  string strCom = " SELECT YF ,SL FROM Table01 ORDER BY YF" ;

  en ( ) ;

  OleDbCommand myCommand = new OleDbCommand ( strCom , myConn ) ;

  OleDbDataReader myOleDbDataReader = ecuteReader ( ) ;

  //创建OleDbDataReader实例,并以此实例来获取数据库中各条记录数据

  int [ ] iXiaoSH = new int [ 12 ] ;

  //定义一个数组,用以存放从数据库中读取的销售数据

  string [ ] sMoth = new string [ 12 ] ;

  //定义一个数组,用以存放从数据库中读取的销售月份

  int iIndex = 0 ;

  while ( ad ( ) )

  {

  iXiaoSH [ iIndex ] = tInt32 ( 1 ) ;

  sMoth [ iIndex ] = tInt32 ( 0 ) . ToString ( ) + "月" ;

  iIndex++ ;

  }

  //读取Table01数据表中的各条数据,并存放在先前定义的二个数组中

  myConn . Close ( ) ;

  myOleDbDataReader . Close ( ) ;

  //关闭各种资源

  Bitmap bm = new Bitmap ( 600 , 250 ) ;

  //创建一个长度为600,宽带为250的Bitmap实例

  Graphics g ;

  g = omImage ( bm ) ;

  //由此Bitmap实例创建Graphic实例

  g . Clear ( Color . Snow ) ;

  //用Snow色彩为背景色填充此绘画图面

  g . DrawString ( " ××公司××器件2002年度销售情况一览表" , 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 ngth ; i++ )

  {

  g . DrawRectangle ( ack , 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 ( ack , ( 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 ( ack , 2 ) ;

  g . DrawRectangle ( p , 1 , 1 , 598 , 248 ) ;

  ve ( Response . OutputStream , ImageFormat . Jpeg ) ;

  9. 文件中的InitializeComponent过程之后,添加下列代码,下列代码的作用是定义一个名称为GetColor函数,此函数的功能根据索引号得到相应的系统颜色:

  private Color GetColor ( int itemIndex )

  {

  Color MyColor ;

  int i = itemIndex ;

  switch ( i )

  {

  case 0 :

  MyColor = Color . Cornsilk ;

  return MyColor ;

  case 1 :

  MyColor = Color . Red ;

  return MyColor ;

  case 2 :

  MyColor = Color . Yellow ;

  return MyColor ;

  case 3 :

  MyColor = Color . Peru ;

  return MyColor ;

  case 4 :

  MyColor = Color . Orange ;

  return MyColor ;

  case 5 :

  MyColor = Color . Coral ;

  return MyColor ;

  case 6:

  MyColor = Color . Gray ;

  return MyColor ;

  case 7:

  MyColor = Color . Maroon ;

  return MyColor ;

  case 8:

  MyColor = Color . Azure ;

  return MyColor ;

  case 9:

  MyColor = iceBlue ;

  return MyColor ;

  case 10:

  MyColor = Color . Bisque ;

  return MyColor ;

  case 11:

  MyColor = Color . BurlyWood ;

  return MyColor ;

  case 12:

  MyColor = Color . Chartreuse ;

  return MyColor ;

  default:

  MyColor = Color . Green ;

  return MyColor ;

  }

  }

  10. 至此,在上述步骤都正确执行后,在页面中实现数据Bar图的全部工作就完成了。在确定上面建立的Access数据库"b"位于C盘的根目录中之后,单击快捷键F5,就可以得到如图01所示的数据Bar图了。

  五.总结:

  在页面中实现各种图表,其所使用的就是的绘图功能,而这一功能是的前一个版本所不具备的。上面的这些介绍,不仅介绍了在绘制各种图片的方法,还介绍了数据库连接和从数据库中逐条读取记录的方法。这些方法对您了解和掌握在中操作数据库是非常有用的。在下一篇文章中,将介绍浏览器中经常看到的另外一种图表--饼图,在页面中的实现方法。如果您感兴趣,那就让我们下一讲再见吧!查看本文来源

母乳性的黄疸什么症状
母乳性黄疸宝宝的症状
母乳性黄疸宝宝有什么症状
本文标签: