標籤:
在圖表中,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"; } }
C#chart圖表的應用