Visual Studio 2010 Chart 探秘
昨天晚上无聊 所以研究了下VS2010的Chart控件 在这里和大家分享了一下研究成果 不足之处 还望指教(1)在数据中可以找到chart 控件
拖放到form中 设置一下 样式 和 Dock
chart可以设置向导数据源 这里比较简单 俺就不演示了
(2)控件拖放好 切换到代码界面
主要代码如下 数据库用的是pubs 呵呵 很简单吧 chart 确实给我们开发带来了很多方便 个人觉着和DEVEXPRESS比起来还是显得稚嫩了些
本人试过了 后台绑定数据源不支持DataSet 貌似只有在设置向导数据源时才支持 这点很不理解 。。。。
程序代码:using System;
using System.Collections.Generic;
using using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Windows.Forms.DataVisualization.Charting;
namespace WindowsFormsApplication9
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//DataReader
//string myConnectionString = "Data Source=.;Initial Catalog=pubs;User ID=sa;Pwd=×××××;";
//string sql = "select discount 金额,discounttype from discounts";
//SqlConnection conn = new SqlConnection(myConnectionString);
//SqlCommand cmd = new SqlCommand(sql, conn);
//cmd.Connection.Open();
//SqlDataReader reader = cmd.ExecuteReader();
//chart1.DataBindTable(reader, "discounttype");
//cmd.Connection.Close();
//foreach (Series series in chart1.Series)
//{
// series.CustomProperties = "DrawingStyle=LightToDark";
//}
//数组 arraylist 也可以
//int[] a = new int[] { 1,22,33,17};
//chart1.DataBindTable(a);
//泛型
List<discounts> list =null;
//datareader
string myConnectionString = "Data Source=.;Initial Catalog=pubs;User ID=sa;Pwd=××××××;";
string sql = "select discount 金额,discounttype from discounts";
SqlConnection conn = new SqlConnection(myConnectionString);
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Connection.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
list = new List<discounts>();
}
while (reader.Read())
{
discounts _discounts = new discounts();
_discounts.Discount = reader["金额"] == DBNull.Value ? 0 : decimal.Parse( reader["金额"].ToString().Trim());
_discounts.Discounttype = reader["discounttype"] == DBNull.Value ? string.Empty : reader["discounttype"].ToString().Trim();
list.Add(_discounts);
}
reader.Close();
reader.Dispose();
cmd.Connection.Close();
//用于X轴显示的列名
chart1.DataBindTable(list, "discounttype");
//俺对比了一下 发现这里循环设置所有的渐变效果以及图标样式
//【官方的解释是指定数据点的绘制样式】可以设置这几个值 Cylinder、 Emboss、 LightToDark、 Wedge、 Default。
//帮助文档源代码是这样 俺试过没有这个属性所以修改下
//foreach (Series series in chart1.Series)
//{
// series.CustomAttributes = "DrawingStyle=LightToDark";
//}
//修改如下
foreach (Series series in chart1.Series)
{
series.CustomProperties = "DrawingStyle=LightToDark";
series.LegendText = "金额统计";
}
}
}//类Form1结束
}//命名空间结束
运行结果 如下附上代码
[ 本帖最后由 wangnannan 于 2010-12-11 09:17 编辑 ]









