微软现在有图表控件了,但要求vs2008+net framework3.5 sp1.若现在是vs2005,现在又不想用vs2008,现引用个第三方组件ZedGraph;
下载地址:
http://www.codeproject.com/KB/graphics/zedgraph.aspx
下面简要的说明一下如何使用:
1. 引用ZedGraph
下载后解压,然后引用到web项目中,结果如下
2. 在工具箱中加载ZedGraph
3. 使用控件
新建网页,将ZedGraphWeb控件拖到页面,配置好renderedimagepath,如renderedimagepath="~/TempImages/"
后台代码主要的方法OnRenderGraph代码如下:
Code
private void OnRenderGraph(ZedGraphWeb zgw, Graphics g, MasterPane masterPane)
{
GraphPane myPane = masterPane[0];
myPane.Title.Text = "订单销售统计";
myPane.XAxis.Title.Text = "月份";
myPane.YAxis.Title.Text = "成交订单数";
PointPairList list = new PointPairList();
string sql = "select fmonth,ordernum from dbo.OrderTj";
using (SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["CONN"].ToString()))
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
myPane.XAxis.Scale.Max = dt.Rows.Count;
foreach (DataRow dr in dt.Rows)
{
list.Add(double.Parse(dr["fmonth"].ToString()), double.Parse(dr["ordernum"].ToString()));
}
}
conn.Close();
}
BarItem myCurve = myPane.AddBar("数量", list, Color.Blue);
myCurve.Bar.Fill = new Fill(Color.Blue, Color.White, Color.Blue);
myPane.Fill = new Fill(Color.White, Color.FromArgb(200, 200, 255), 45.0f);
masterPane.AxisChange(g);
BarItem.CreateBarLabels(myPane, false, "f0");
}
运行效果图
用于测试的数据库表创建语句如下
Code
CREATE TABLE [dbo].[OrderTj](
[fmonth] [int] NULL,
[ordernum] [int] NULL
) ON [PRIMARY]
Demo下载/Files/kevinlzf/Demo.rar
其他曲线图,饼状图什么的,只有自己去看文档了,我只是简单的演示下他的功能而以,就此结束了.