如何用ASP.NET+C#如何画一折线图或圆饼图?
环境是VS2005BETA中文版,数据可以从数据库中取。
本人是水平粗浅,请指教.
http://dotnet.aspx.cc/ShowDetail.aspx?id=221BC601-1A1B-4E1F-883D-04B043659703
OWC图表
OWC.ChartSpace owcChartSpace=new OWC.ChartSpace();
OWC.WCChart owcChart=owcChartSpace.Charts.Add(0);
ADODB.Connection ConnADO = new ADODB.Connection();
ADODB.Recordset RecordsetADO = new ADODB.Recordset();
string connectionString = "Provider=MSDataShape;Data Provider=SQLOLEDB;uid=OAM;pwd=OAM;Data Source=bqsnet;initial catalog=oam";
ConnADO.Open(connectionString,"OAM","OAM",-1);
RecordsetADO.ActiveConnection = ConnADO;
RecordsetADO.CursorType = ADODB.CursorTypeEnum.adOpenStatic;
RecordsetADO.CursorLocation = ADODB.CursorLocationEnum.adUseClient;
string strSQL = "select * from student order by student";
RecordsetADO.Open(strSQL,ConnADO,ADODB.CursorTypeEnum.adOpenStatic,ADODB.LockTypeEnum.adLockReadOnly,0);
owcChartSpace.DataSource=(msdatasrc.DataSource)RecordsetADO;
owcChart.Type=OWC.ChartChartTypeEnum.chChartTypeColumnClustered; //柱状
// owcChart.Type = OWC.ChartChartTypeEnum.chChartTypeSmoothLineMarkers; //线状
owcChart.SetData(OWC.ChartDimensionsEnum.chDimSeriesNames,0,"student");
foreach (OWC.WCSeries owcSeries in owcChart.SeriesCollection)
{
owcSeries.SetData(OWC.ChartDimensionsEnum.chDimCategories,0,"test"); //X轴
owcSeries.SetData(OWC.ChartDimensionsEnum.chDimValues,0,"score"); //Y轴
}
foreach (OWC.WCAxis axis in owcChart.Axes)
{ //说明表示意义
owcChart.HasLegend=true;
owcChart.Legend.Position=OWC.ChartLegendPositionEnum.chLegendPositionBottom;
// owcChart.Legend.Font.Size=15;
//标题
owcChart.HasTitle=true;
owcChart.Title.Caption="学生成绩表";
//X,Y轴意义
axis.HasTitle=true;
if (axis.Type==ChartAxisTypeEnum.chCategoryAxis)
{
axis.Title.Caption="test";
}
else
{
axis.Title.Caption="score";
}
}
// owcChart.SeriesCollection[1].Interior.Color="red"; //改变颜色
// owcChart.SeriesCollection[1].Line.Color="red"; //改变颜色
Random rd=new Random();
int nfilenameSuffix;
string sfilenamesuffix;
nfilenameSuffix = 100000 * rd.Next();
sfilenamesuffix = Convert.ToString(nfilenameSuffix);
owcChartSpace.ExportPicture(MapPath("../Report/") + sfilenamesuffix + ".gif", "gif", 800, 600);
Image1.ImageUrl = "../Report/" + sfilenamesuffix + ".gif";
在写以上代码的前先在引用中加Microsoft Office Web Components9.0
在using中加using OWC
www.kehui.net/html/article/44/44003.html
dotnet.aspx.cc/ ShowDetail.aspx?id=221BC601-1A1B-4E1F-883D-04B043659703
例子很全
下个组件来用用啊
用: ComponentOne组件集,以下代码公供参考,因为要运行还要进行一些配置,如果
你对ComponentOne感兴趣,可以学一下
饼图
// private void GetPieChart(DataView dv)
// {
// PointF[] data = new PointF[dv.Count];
// for (int i = 0; i < data.Length; i++)
// {
// float y = float.Parse((dv[i]["ProjectPreAmount"]).ToString());
// data[i] = new PointF(i, y);
// }
//
//
// //清除现有的饼
// ChartDataSeriesCollection dscoll = C1WebChart2.ChartGroups[0].ChartData.SeriesList;
// dscoll.Clear();
//
// for(int i=0; i < data.Length; i++)
// {
// ChartDataSeries series = dscoll.AddNewSeries();
// series.PointData.Length = 1;
// series.Y[0] = data[i].Y;
// series.Label=dv[i]["ProjectPreAmount"].ToString(); //设置Legend
//
//
// //加标签
//
// C1.Win.C1Chart.Label lbl = C1WebChart2.ChartLabels.LabelsCollection.AddNewLabel();
// lbl.Text = string.Format("{0}: ({1:c})",dv[i]["ChiName"], data[i].Y);
// lbl.Compass = LabelCompassEnum.Radial;
//
// lbl.Offset = 50;
// lbl.Connected = true;
// lbl.Visible = true;
// lbl.AttachMethod = AttachMethodEnum.DataIndex;
// AttachMethodData am = lbl.AttachMethodData;
// am.GroupIndex = 0;
// am.SeriesIndex = i;
// am.PointIndex = 0;
// }
//
// //设置离心的距离
//
// ChartData cd = C1WebChart2.ChartGroups.ChartGroupsCollection[0].ChartData;
// for(int i = 0; i < cd.SeriesList.Count; i ++)
// {
// cd.SeriesList[i].Offset = 30;
// }
// }
收藏了
建议用OWC11控件!
用GDI+是最灵活的,但相对麻烦一点儿,现在现成的控件也有不少