{
int iWidth=30;
int scale = 10 ;
Point[] points={
new Point(i*iWidth, 250-(szxls[i]*scale))
};
Pen pen=new Pen(Color.Black, 2);
g.DrawCurve(pen, points);
}
怎么得到12个月份对应的12个点啊?
就是动态得到new point();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
SqlConnection conn=new SqlConnection("server=localhost; database=WKM001; uid=sa; pwd="); //创建数据库连接以获得数据
conn.Open();
SqlCommand com=new SqlCommand("select yf, xl from GDI order by yf" , conn);
SqlDataReader dr=com.ExecuteReader();
int [] szxls=new int[12]; //定义数组存放从数据库获得的销量数据
string [] szyf=new string[12]; //定义数组存放从数据库获得的月份
int iindex=0;
while(dr.Read())
{
szxls[iindex]=dr.GetInt32(1);
szyf[iindex]=dr.GetInt32(0).ToString()+"月";
iindex ++; //读取GDI中的数据并存入数组
}
dr.Close();
com.Dispose();
conn.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("××公司××××年度销售情况统计表",new Font("黑体",16), Brushes.Black, new Point(5,5)); //在绘画图面的指定位置,以指定的字体、指定的颜色绘制指定的字符串。即为图表标题
//以下代码是绘制曲线图
for (int i = 0; i < szxls.Length; i++)
{
int iWidth=30;
int scale = 10 ;
Point[] points={
new Point(i*iWidth, 250-(szxls[i]*scale))
};
Pen pen=new Pen(Color.Black, 2);
g.DrawCurve(pen, points, 0.6f);
}
bm.Save ( Response . OutputStream , ImageFormat.Gif) ;
帮忙给看看哪里的问题吧!
异常详细信息: System.ArgumentException: 使用了无效参数。
源错误:
行 79: };
行 80: Pen pen=new Pen(Color.Black, 2);
行 81: g.DrawCurve(pen, points, 0.6f);
行 82:
行 83: }
源文件: c:\inetpub\wwwroot\wkmdofortry\gdi+_do.aspx.cs 行: 81
堆栈跟踪:
[ArgumentException: 使用了无效参数。]
System.Drawing.Graphics.CheckErrorStatus(Int32 status) +136
System.Drawing.Graphics.DrawCurve(Pen pen, Point[] points, Single tension) +207
WKMDoForTry.GDI__do.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\wkmdofortry\gdi+_do.aspx.cs:81
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731