我借用本区一位兄弟写的函数,从数据源取数据显示图表转GIF显示在客户端,编译没问题,DataTable 绑定到DataGrid 也没问题,为何图片显示是红X ??求各位兄弟指点一二,谢谢!!!
主要代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string cmd="select n1,n2 from tmp";
DataTable dt=ts.getTable(cmd);
ts.showTable(this.DataGrid1,dt);
//用 dt 给datagrid BIND() ,显示正常,两列数据
ChartHolder.Controls.Add(new LiteralControl(dt_chart(dt,400,400,"TEST")));
}
//生成OWC图表转GIF文件的函数
/// <summary>
/// 生成图表
/// </summary>
/// <param name="dt">数据源(DataTable)</param>
/// <param name="chartWidth">图片宽度</param>
/// <param name="chartHeight">图片高度</param>
/// <returns>图片名称</returns>
public string dt_chart(DataTable dt,int chartWidth,int chartHeight,string chart_name)
{
ArrayList[] data_al=new ArrayList[dt.Columns.Count-1]; //统计列数
for(int i=0;i<dt.Columns.Count-1;i++)
{
data_al[i] = new ArrayList();
data_al[i].Add(dt.Columns[i]); } OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass (); //在ChartSpace对象中添加图表,Add方法返回chart对象
OWC11.ChChart objChart = objCSpace.Charts.Add (0);
//指定图表是否需要图例
objChart.HasLegend = true;
objChart.HasTitle=true;
objChart.Title.Caption=chart_name;
objChart.Axes[0].Font.Color="red"; //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到 objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeSmoothLineMarkers; for(int i=0;i<data_al.Length-1;i++)
{
//在ChartSpace对象中添加图表,Add方法返回chart对象
objChart.SeriesCollection.Add(i);
objChart.SeriesCollection[i].DataLabelsCollection.Add().Font.Color="red";
objChart.GapWidth=280;
objChart.BarWidth=400; string strSeriesName="指标"; //给定series的名字
objChart.SeriesCollection[i].SetData (OWC11.ChartDimensionsEnum.chDimSeriesNames,(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,strSeriesName); //给定分类
objChart.SeriesCollection[i].SetData (OWC11.ChartDimensionsEnum.chDimCategories,(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,data_al[0].ToArray()); //给定值
objChart.SeriesCollection[i].SetData (OWC11.ChartDimensionsEnum.chDimValues,(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,data_al[i+1].ToArray());
}
//输出成GIF文件
string strAbsolutePath ="\\test.gif";
objCSpace.ExportPicture(strAbsolutePath, "GIF",chartWidth,chartHeight);
//创建GIF文件的相对路径.
string strImageTag = "<IMG SRC='" + "./test.gif" + "'/>";
return strImageTag;
}
主要代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string cmd="select n1,n2 from tmp";
DataTable dt=ts.getTable(cmd);
ts.showTable(this.DataGrid1,dt);
//用 dt 给datagrid BIND() ,显示正常,两列数据
ChartHolder.Controls.Add(new LiteralControl(dt_chart(dt,400,400,"TEST")));
}
//生成OWC图表转GIF文件的函数
/// <summary>
/// 生成图表
/// </summary>
/// <param name="dt">数据源(DataTable)</param>
/// <param name="chartWidth">图片宽度</param>
/// <param name="chartHeight">图片高度</param>
/// <returns>图片名称</returns>
public string dt_chart(DataTable dt,int chartWidth,int chartHeight,string chart_name)
{
ArrayList[] data_al=new ArrayList[dt.Columns.Count-1]; //统计列数
for(int i=0;i<dt.Columns.Count-1;i++)
{
data_al[i] = new ArrayList();
data_al[i].Add(dt.Columns[i]); } OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass (); //在ChartSpace对象中添加图表,Add方法返回chart对象
OWC11.ChChart objChart = objCSpace.Charts.Add (0);
//指定图表是否需要图例
objChart.HasLegend = true;
objChart.HasTitle=true;
objChart.Title.Caption=chart_name;
objChart.Axes[0].Font.Color="red"; //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到 objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeSmoothLineMarkers; for(int i=0;i<data_al.Length-1;i++)
{
//在ChartSpace对象中添加图表,Add方法返回chart对象
objChart.SeriesCollection.Add(i);
objChart.SeriesCollection[i].DataLabelsCollection.Add().Font.Color="red";
objChart.GapWidth=280;
objChart.BarWidth=400; string strSeriesName="指标"; //给定series的名字
objChart.SeriesCollection[i].SetData (OWC11.ChartDimensionsEnum.chDimSeriesNames,(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,strSeriesName); //给定分类
objChart.SeriesCollection[i].SetData (OWC11.ChartDimensionsEnum.chDimCategories,(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,data_al[0].ToArray()); //给定值
objChart.SeriesCollection[i].SetData (OWC11.ChartDimensionsEnum.chDimValues,(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,data_al[i+1].ToArray());
}
//输出成GIF文件
string strAbsolutePath ="\\test.gif";
objCSpace.ExportPicture(strAbsolutePath, "GIF",chartWidth,chartHeight);
//创建GIF文件的相对路径.
string strImageTag = "<IMG SRC='" + "./test.gif" + "'/>";
return strImageTag;
}
解决方案 »
- 如何动态创建repeter控件,每次显示从不同的表查到的数据
- 写出在.NET平台下优化web程序的方案(至少5种)
- 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
- 为什么我在FCKeditorV2:FCKeditor编辑器里我输入韩文会显示乱码
- 请问.NET里面如何在前台使用JS获取并修改FCKEDITOR的值
- [简单问题]添加数据出错!
- 关于控件的焦点的问题
- IIS服务器不可用,怎样解决
- 如何使DataGrid的联接列弹出的新窗口样式可控制?
- commandtext属性尚未初始化,大神们该怎么改?
- 比如我的前台显示采购单号,如果有重复的,那么我想显示一个,其他的用--------来表示,不知道这个怎么做? .aspx+C#实现
- 请教:框架(cols="128,*")中,已经打开a.aspx和b.aspx,如何在a中关闭b,请给出c#详细代码。谢谢!
objCSpace.ExportPicture(strAbsolutePath, "GIF",chartWidth,chartHeight);string strImageTag = "<IMG SRC='" + "test.gif" + "'/>";
return strImageTag;
拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Runtime.InteropServices.COMException: 拒绝访问。源错误: 行 126: //string strAbsolutePath ="\\test.gif";
行 127: string strAbsolutePath = Server.MapPath("./") + "test.gif";
行 128: objCSpace.ExportPicture(strAbsolutePath, "GIF",chartWidth,chartHeight);
行 129: //创建GIF文件的相对路径.
行 130: string strImageTag = "<IMG SRC='" + "test.gif" + "'/>";
行 128错误!!!!!!!!拒绝访问
大哥大姐帮帮我呀
strSeriesName "图例 1" string
strCategory "1\t2\t3\t4\t5\t6\t" string
strValue "9\t8\t4\t10\t12\t6\t" string
strAbsolutePath @"D:\workspace\webapps\eninfo\test.gif" string
strRelativePath null string
strImageTag null string
这是孟子的原文,应该没问题的,从我的断点变量看也应该没问题,为什么到128行就拒绝访问呢??