在圖表中,x軸代表類別,y軸代表數值(好比類與他們的屬性)
這是數據庫中的數據,下面我們選前5輛車,在圖表中顯示他們的名字,油耗,功率,價格
創建查詢數據的類
class CarDA { public List < CarData> select() { List < CarData > list= null; SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123"); conn.Open(); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select top 5* from car"; SqlDataReader dr= cmd.ExecuteReader() ; if(dr.HasRows) { list = new List<CarData>(); while(dr.Read()) { CarData data = new CarData(); data = new CarData(); data.Name = dr["name"].ToString(); data.Oil=(decimal)dr["oil"]; data.Powers=dr["powers"].ToString(); data.Price=(decimal )dr["price"]; list.Add(data); } } return list; cmd.Dispose(); conn.Close(); } }
class CarData { private string _name; public string Name { get { return _name; } set { _name = value; } } private decimal _oil; public decimal Oil { get { return _oil; } set { _oil = value; } } private string _powers; public string Powers { get { return _powers; } set { _powers = value; } } private decimal _price; public decimal Price { get { return _price; } set { _price = value; } } }
窗體一加載,給圖表綁定數據源,注意:綁定時以一列為單位,指明每列的x軸和y軸分別對應數據源的屬性名(也就是泛型集合里面對象的屬性名)。注意:指定的必須是屬性名,不能是字段名,這也要求數據源的對象的字段必須封裝,必須有屬性。
這里體現了C#編程的封裝特性,我們給chart圖表工具一個數據源,讓它幫我們形象的展示數據,我們並不關心到底是怎樣實現的,我們只告訴它需要顯示那些數據,剩下的就交給chart圖表工具了。
private void Form1_Load(object sender, EventArgs e) { List<CarData> list = new CarDA().select(); if (list != null) { chart1.DataSource = list; chart1.Series["Series1"].XValueMember="name"; chart1.Series["Series1"].YValueMembers = "oil"; } }
運行結果
在Series屬性里,可以設置每列的顯示名字,並添加新列
private void Form1_Load(object sender, EventArgs e) { List<CarData> list = new CarDA().select(); if (list != null) { chart1.DataSource = list; chart1.Series["油耗"].XValueMember="name"; chart1.Series["油耗"].YValueMembers = "oil"; chart1.Series["功率"].XValueMember = "name"; chart1.Series["功率"].YValueMembers = "powers"; chart1.Series["價格"].XValueMember = "name"; chart1.Series["價格"].YValueMembers = "price"; } }





