首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

用VB.NET在ASP.NET页面中实现数据棒图,该怎么处理

2011-12-31 
用VB.NET在ASP.NET页面中实现数据棒图数据库表:用sqlserver2000数据库定义了一张数据表 Table01 ,此表的

用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

热点排行