读书人

用VB.NET在ASP.NET页面中实现数据棒图

发布时间: 2011-12-31 23:50:30 作者: rapoo

用VB.NET在ASP.NET页面中实现数据棒图
数据库表:
用sql server 2000数据库定义了一张数据表 "Table01 ",此表的结构如表01所示:
字段名称 类型 说明
ID 自动编号 主键 ,递增
YF 数字 销售月份
SL 数字 销量
         表01:Table01数据表的结构

在定义完 "db.mdb "数据库中的 "Table01 "数据表后,在Table01数据表中按照表02所示添加记录:
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:Table01数据表中的记录情况

效果为按月份生成柱状图.
请问用VB.NET做网站开发语言如何实现?

或者有C#代码,如何转换成VB.NET,C#代码如下:

在WebForm1.aspx.cs文件首部,用下列代码替换WebForm1.aspx.cs中导入命名空间的代码:


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 . Drawing . Imaging ;
//下面程序中使用的ImageFormat类所在的命名空间
using System . Data . OleDb ;
//下面程序中使用到关于数据库方面的类所在的命名空间

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

string sRouter = "c:\\db.mdb " ;
//获得当前Access数据库在服务器端的绝对路径
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + sRouter ;
//创建一个数据库连接
OleDbConnection myConn = new OleDbConnection ( strCon ) ;
string strCom = " SELECT YF ,SL FROM Table01 ORDER BY YF " ;
myConn.Open ( ) ;
OleDbCommand myCommand = new OleDbCommand ( strCom , myConn ) ;
OleDbDataReader myOleDbDataReader = myCommand.ExecuteReader ( ) ;
//创建OleDbDataReader实例,并以此实例来获取数据库中各条记录数据
int [ ] iXiaoSH = new int [ 12 ] ;
//定义一个数组,用以存放从数据库中读取的销售数据
string [ ] sMoth = new string [ 12 ] ;
//定义一个数组,用以存放从数据库中读取的销售月份
int iIndex = 0 ;
while ( myOleDbDataReader.Read ( ) )
{
iXiaoSH [ iIndex ] = myOleDbDataReader.GetInt32 ( 1 ) ;
sMoth [ iIndex ] = myOleDbDataReader.GetInt32 ( 0 ) . ToString ( ) + "月 " ;


iIndex++ ;
}
//读取Table01数据表中的各条数据,并存放在先前定义的二个数组中
myConn . Close ( ) ;
myOleDbDataReader . 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 ( " ××公司××器件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 < 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 ) ;
bm.Save ( Response . OutputStream , ImageFormat . Jpeg ) ;

WebForm1.aspx.cs文件中的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 = Color.AliceBlue ;
   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 ;
 }
}




[解决办法]
Convert C# to VB.NET
http://www.developerfusion.co.uk/utilities/convertcsharptovb.aspx

读书人网 >VB Dotnet

热点推荐