永济旅游景点门票大全:ASP.NET/SQL 怎样动态生成百分比图表(ACCESS中那样得)

来源:百度文库 编辑:中科新闻网 时间:2024/05/14 12:48:34
做一个网页,要求从SQL数据库中调取 在籍人数 和 退学人数.
两数据可以动态生成一个饼状或其他状的图表,注意不是表,是图表.
我使用ASP.NET开发,语言是VB.NET(C#多少我也能看懂,并且转换)
谁能提供详细方法例子,编出来送分.我不笨,但希望不要和我拽文.
谢谢
如果是粘贴的,请直接给我网址.
站个位置等天上调分的,告诉你 不可能.

把我给我们单位客服接电话数量统计的条形图给你参考一下,也是刚做完的,哪里不好再告诉我呀
图:http://handsomecfx.xinwen365.net/draw.jpg
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging;
using System.Data.SqlClient;
using System.Drawing;

public partial class graphics_draw : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string cn = System.Configuration.ConfigurationManager.AppSettings["Connstring"];
SqlConnection oSQLConn = new SqlConnection(cn);
oSQLConn.Open();
//Int32 iid = Convert.ToInt32(Page.Request.QueryString["lid"]);
string sel = "select * from CallLog ";
SqlDataAdapter sela = new SqlDataAdapter(sel, oSQLConn);
DataSet sels = new DataSet();
sela.Fill(sels, "sel");

oSQLConn.Close();
int[] iXiaoSH = new int[12];
//定义一个数组,用以存放数据
string[] sMoth = new string[12];
//定义一个数组,用以存放从月份
string cnn = System.Configuration.ConfigurationManager.AppSettings["Connstring"];
SqlConnection Conn = new SqlConnection(cnn);
Conn.Open();
for (int i=1;i<13;i++)
{

string seach = "select count(*) from CallLog where month(Times)='" + i + "'and year(Times)='" + Convert.ToString(DateTime.Today.Year) + "'";
SqlCommand comm = new SqlCommand(seach, Conn);
string count = Convert.ToString(comm.ExecuteScalar());
iXiaoSH[i-1] =Convert.ToInt32( count) ;
sMoth[i-1] = i + "月" + "";
}
int temp = iXiaoSH[0];
for (int i = 1; i < iXiaoSH.Length; i++)
{
if (temp < iXiaoSH[i])
{
temp = iXiaoSH[i];
}
}

Conn.Close();

//关闭各种资源
Bitmap bm = new Bitmap(700, 460);
//创建一个长度为700,宽带为460的Bitmap实例
Graphics g;
g = Graphics.FromImage(bm);
//由此Bitmap实例创建Graphic实例
g.Clear(Color.Snow);
//用Snow色彩为背景色填充此绘画图面
g.DrawString(" 客服系统" + DateTime.Now.Year + "投诉电话情况一览表", new Font("宋体", 16), Brushes.Blue, new Point(5, 5));
//在绘画图面的指定位置,以指定的字体、指定的颜色绘制指定的字符串。即为图表标题
//以下代码是是实现图中的右上部
Point myRec = new Point(635, 30);
Point myDec = new Point(660, 30);
//以上是在图01中为下面绘制定位
g.DrawString("电话:次数", new Font("宋体", 9), Brushes.Black, new Point(625, 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;
}
//以下代码是绘制图中的Bar图,及其销售数量
int iBarWidth = 40;
//int scale = 10;

float hei =Convert.ToSingle( 400.00 / temp);
for (int i = 0; i < iXiaoSH.Length; i++)
{

g.DrawRectangle(Pens.Black, (i * iBarWidth) + 15, 460 - (iXiaoSH[i] * hei), 20, Convert.ToInt32(iXiaoSH[i] * 400));
//绘制Bar图
g.FillRectangle(new SolidBrush(GetColor(i)), (i * iBarWidth) + 15, 460 - (iXiaoSH[i] * hei), 20, Convert.ToInt32(iXiaoSH[i] * hei) );
//以指定的色彩填充Bar图
g.DrawString(iXiaoSH[i].ToString(), new Font("宋体", 9), Brushes.Black, (i * iBarWidth) + 20, 458 - Convert.ToInt32(iXiaoSH[i] * hei) - 10);

//显示Bar图代表的数据
}
//以下代码是绘制图中的边框,并形成Jpeg文件,供浏览器显示出来
Pen p = new Pen(Color.Black, 2);
g.DrawRectangle(p, 1, 1, 698, 458);
bm.Save(Response.OutputStream, ImageFormat.Jpeg);

}
private System.Drawing.Color GetColor ( int itemIndex )
{
Color MyColor ;
int i = itemIndex ;
switch ( i )
{
case 0 :
MyColor = Color .DarkMagenta ;
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.DeepPink;
return MyColor ;
case 9:
MyColor = Color.DarkSlateBlue ;
return MyColor ;
case 10:
MyColor = Color .DarkGreen ;
return MyColor ;
case 11:
MyColor = Color . BurlyWood ;
return MyColor ;
//case 12:
// MyColor = Color . Chartreuse ;
// return MyColor ;
case 12:
MyColor = Color.Blue;
return MyColor;
default:
MyColor = Color . Green ;
return MyColor ;

}
}

}

用Reporting Server或水晶报表做就可以实现这样的功能
谁会为这200分给你去写啊
我这里我个Javascript写的现成的有柱状图和饼图

用微软自带的owc控件,我在我的博客上有一篇介绍
请参考:http://mind5.bokee.com/5050634.html

这是asp语言版的。但是和语言关系不大,你应该看的懂的。
想了解更多上baidu查一下: owc 网页图表 就好了

ZedGraphic一套开元的统计图控件,免费,有全套C#代码。我这里有程序、文档和范例。
QQ:16599564

饼图

用Reporting Server或水晶报表做就可以实现这样的功能
谁会为这200分给你去写啊
我这里我个Javascript写的现成的有柱状图和饼图
要我可以发给你 QQ:26833774