I have created a GraphChart project using C# (2010), my project has the following six forms:

  1. frmChart: this is the main form to choose the type of the chart.

  2. frmGraph1: Binding the Chart to the Array from the DataGrid with the DataBindXY method.

  3. frmGraph2: Using the DataBindXY method as the previous form but binding the Chart to data from a MDB file and show the following chart:

    chart

  4. frmGraph3: Using the DataBindTable method to bind the Chart to the data from a MDB file.

  5. frmGraph4: Using the AddXY method to bind the Chart to the data from a MDB file.

  6. frmGraph5: Using DataSource and bind the Chart to the data from a MDB file with the DataBind method.

About the Code

I begin the code in all the forms with the following function:

  1. private void CreateChartArea()
  2. {
  3. //Clear ChartAreas if found:
  4. MyChart.ChartAreas.Clear();
  5. //Create new ChartArea
  6. MyChartArea = new ChartArea();
  7. //Add ChartArea:
  8. MyChart.ChartAreas.Add("MyChartArea");
  9. //Set BackColor to Chart and Graph area:
  10. MyChart.BackColor = Color.LightGray;
  11. MyChart.ChartAreas["MyChartArea"].BackSecondaryColor = Color.Orange;
  12. MyChart.ChartAreas["MyChartArea"].BackHatchStyle = ChartHatchStyle.Wave;
  13. //Hide vertical lines:
  14. MyChart.ChartAreas["MyChartArea"].AxisX.MajorGrid.Enabled = false;
  15. //Set horizontal lines to Dash style:
  16. MyChart.ChartAreas["MyChartArea"].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
  17. //Set X-Axis to four Series:
  18. MyChart.ChartAreas["MyChartArea"].AxisX.Maximum = 5;
  19. //Set X-Axis labels font:
  20. MyChart.ChartAreas["MyChartArea"].AxisX.LabelStyle.Font = new Font("Arial", 10, FontStyle.Bold);
  21. //Set X-Axis labels color to blue:
  22. MyChart.ChartAreas["MyChartArea"].AxisX.LabelStyle.ForeColor = Color.Blue;
  23. //Set Y-Axis title:
  24. MyChart.ChartAreas["MyChartArea"].AxisY.Title = "Number of students";
  25. //Set Y-Axis title font:
  26. MyChart.ChartAreas["MyChartArea"].AxisY.TitleFont = new Font("Arial", 10, FontStyle.Bold);
  27. //Set Y-Axis title color:
  28. MyChart.ChartAreas["MyChartArea"].AxisY.TitleForeColor = Color.Blue;
  29. //You can use ChartAreas index instead ChartAreas name:
  30. //Example: MyChart.ChartAreas[0].BackColor = Color.Lavender
  31. }
But the statement "strSql" varies from one form to another.

Any form has a function to create a "ChartArea", "Series", "Legend" and "Title" of the chart.

The following function creates a ChartArea in the form "frmGraph2":
  1. private void DrawGraph() //Binding to Data with DataBind methods:
  2. {
  3. //Define database query:
  4. string Family = "Single"; //View Teachers who are single.
  5. strSql = "SELECT TeacherFamily, TeachingStuff, COUNT(*) AS Total FROM TeacherData " +
  6. "WHERE TeacherFamily = " + "'" + Family + "'" +
  7. "GROUP BY TeacherFamily, TeachingStuff " +
  8. "Order by TeacherFamily";
  9. //Create database connection:
  10. OleDbConnection DataCon = new OleDbConnection(strConnection);
  11. if (DataCon.State == ConnectionState.Open)
  12. DataCon.Close();
  13. DataCon.Open();
  14. //Create database command:
  15. OleDbCommand myCommand = new OleDbCommand(strSql, DataCon);
  16. //Set chart data source:
  17. MyChart.DataSource = myCommand.ExecuteReader();
  18. //Set series:
  19. MyChart.Series["TeacherSeries"].XValueMember = "TeachingStuff";
  20. MyChart.Series["TeacherSeries"].YValueMembers = "Total";
  21. //Binding to Data:
  22. MyChart.DataBind();
  23. myCommand = null;
  24. //Close connection:
  25. DataCon.Close();
  26. }
Summary

It is desirable to beautify your data with a chart, so I invite you to go to the source file to read the code because I cannot list all the source code for the limited space available. If you have any idea for this code then please tell me. Thanks for the C# Corner team and thanks for all.