This example illustrates how to create a real time chart in WinForms. Real-time charts can be created by continuously adding new points in existing series in chart. Timer is used to continuously add new points in the chart.
Step1: Create a dataset with table, which should contain two columns. The following code example shows how to create a dataset with table.
string tableName = "Products";
prodDs1 = new DataSet();
prodDs1.Tables.Add(tableName);
DataColumn ExpiresDate = prodDs1.Tables[tableName].Columns.Add("Date", typeof(System.DateTime));
DataColumn Quantity = prodDs1.Tables[tableName].Columns.Add("Load", typeof(double));
Step2: Bind the dataset as data source for the series using SeriesModel, and then map the columns in the table for x and y-values using the XName and YNames properties.
ChartSeries series = new ChartSeries();
series.Name = "Products";
series.Text = series.Name;
model = new ChartDataBindModel(this.prodDs1, "Products");
model.XName = "Date";
model.YNames = new String[] { "Load" };
series.SeriesModel = model;
series.Type = ChartSeriesType.Spline;
series.Style.DisplayShadow = false;
this.chartControl1.Series.Add(series);
Step3: Add new rows in table, which is bound as data source for the chart, using timer tick event.
private void timer1_Tick(object sender, System.EventArgs e)
{
    try
    {
        string tableName = "Products";
        Random rand = new Random();
        if (prodDs1 != null && prodDs1.Tables.Count > 0)
        {
            DataRow drEmpty = prodDs1.Tables[tableName].NewRow();
            prodDs1.Tables[tableName].Rows.Add(drEmpty);
            int count = Math.Max(0, prodDs1.Tables[tableName].Rows.Count - 1);
            prodDs1.Tables[tableName].Rows[count]["Load"] = (double)rand.Next(0, 60);
            prodDs1.Tables[tableName].Rows[count]["Date"] = lastTime.AddMinutes(30);
        }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
}
The above codes will automatically update the chart with new values present in the data table.
How to make the added points as empty at runtime