Como atualizar o componente chart em tempo de execução?

Estou criando um programa onde o usuário insere registros de diferentes eventos em uma tabela. Ele deve inserir o tipo de evento que ocorreu e a sua data. Em uma pesquisa é possível filtrar por um período entre duas datas para se obter quais eventos ocorreram e quantas vezes cada um se repetiu neste período. Também há a possibilidade de se gerar um gráfico onde são exibidos os eventos pela quantidade de vezes que se repetiu. Ou seja, o intuito principal do gráfico é indicar quais foram os eventos que mais se repetiram no período filtrado. Estou usando um banco de dados Access e o gráfico está sendo gerado através do componente chart.

O programa aparentemente está pegando os dados da tabela no momento em que é executado, mas durante a sua execução, mesmo que seja feita uma nova pesquisa, ao executar o comando que abre o form do gráfico, ele exibe no chart os mesmos dados que estavam na tabela antes da alteração.

Por exemplo:

Ao filtrar entre as datas de 01/01/2015 e 31/12/2015 obtive os seguintes resultados: evento1: 5 ocorrências, evento2: 1 ocorrência, evento3: 7 ocorrências, evento4: 9 ocorrências.

A minha tabela mostrada através de um datagridview exibe os resultados corretamente. Mas o componente chart que deveria mostrar o gráfico com os mesmos resultados acaba exibindo os valores que estavam nessa tabela antes do programa ser executado. Ou seja, para eu ver o resultado da pesquisa que fiz acima, tenho que fechar o programa e abir novamente. Se eu fizer outra pesquisa durante a execução do programa e tentar gerar o gráfico, ele vai continuar mostrando os mesmos dados da pesquisa que foi feita antes dele ser fechado antes.

Ao consultar a tabela vejo que ela sempre é atualizada a cada pesquisa feita pelo programa. Por isso estou desconfiado que isso esteja ocorrendo porque o TableAdapter pega os dados do banco de dados no início da execução do programa, mas não atualiza em tempo real.

Tentei os comandos chart.Invalidade(); e chart.Update(); mas também não obtive sucesso.

O que mais eu poderia tentar?

Desde já agradeço!

Segue o código genérico do formulário que estou usando para testes:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace FrmtabGraf
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void Form1_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'lojaDataSet.Dados' table. You can move, or remove it, as needed.
        //this.dadosTableAdapter.Fill(this.lojaDataSet.Dados);

    }

    void FillTable1()
    {
        Conexao ca = new Conexao();
        string sql = "";
        sql += " Insert Into Dados ";
        sql += " (Descricao, Quantidade) ";
        sql += " Select  ";
        sql += " d.Defeito, COUNT(d.Defeito) AS quantidade  ";
        sql += " From   ";
        sql += " (SisIndice s INNER JOIN   ";
        sql += " Defeitos d ON s.idDefeito = d.idDefeito) ";
        sql += " WHERE (s.DataFat BETWEEN  ";
        sql += " #" + "01/01/2001" + "#  ";
        sql += " AND  ";
        sql += " #" + "31/12/2006" + "#)  ";
        sql += "  GROUP BY d.Defeito ";
        ca.Conectar();
        OleDbCommand cd = new OleDbCommand(sql, ca.cx);
        try
        {
            cd.ExecuteNonQuery();
        }
        catch (OleDbException x)
        {
            MessageBox.Show(x.Message);
        }
        ca.Desconectar();
    }

    void FillTable2()
    {
        Conexao ca = new Conexao();
        string sql = "";
        sql += " Insert Into Dados ";
        sql += " (Descricao, Quantidade) ";
        sql += " Select  ";
        sql += " d.Defeito, COUNT(d.Defeito) AS quantidade  ";
        sql += " From   ";
        sql += " (SisIndice s INNER JOIN   ";
        sql += " Defeitos d ON s.idDefeito = d.idDefeito) ";
        sql += " WHERE (s.DataFat BETWEEN  ";
        sql += " #" + "01/01/2001" + "#  ";
        sql += " AND  ";
        sql += " #" + "31/12/2015" + "#)  ";
        sql += "  GROUP BY d.Defeito ";
        ca.Conectar();
        OleDbCommand cd = new OleDbCommand(sql, ca.cx);
        try
        {
            cd.ExecuteNonQuery();
        }
        catch (OleDbException x)
        {
            MessageBox.Show(x.Message);
        }
        ca.Desconectar();

    }
    void ReadTable()
    {

        Conexao ca = new Conexao();
        string sql = "";
        sql += " Select  ";
        sql += " Quantidade, Descricao  ";
        sql += " From Dados  ";
        ca.Conectar();
        OleDbDataAdapter da = new OleDbDataAdapter(sql, ca.cx);
        DataSet ds = new DataSet();
        da.Fill(ds, "Dados");

        dgvTable.DataSource = ds.Tables["Dados"];
        ca.Desconectar();
    }
    void ClearTable()
    {
        Conexao ca = new Conexao();
        string sql = "";
        sql += " Delete * From Dados ";            
        ca.Conectar();
        OleDbCommand cd = new OleDbCommand(sql, ca.cx);
        try
        {
            cd.ExecuteNonQuery();
        }
        catch (OleDbException x)
        {
            MessageBox.Show(x.Message);
        }
        ca.Desconectar();
    }


    private void cmdDados1_Click(object sender, EventArgs e)
    {
        ClearTable();
        FillTable1();
        ReadTable();
        
    }

    private void cmdDados2_Click(object sender, EventArgs e)
    {
        ClearTable();
        FillTable2();
        ReadTable();
    }

    private void cmdGerarGraf_Click(object sender, EventArgs e)
    {
        this.dadosTableAdapter.Fill(this.lojaDataSet.Dados);
        chartGraf.Invalidate();
        chartGraf.Update();
        chartGraf.DataBind();
        
    }
}

}

Tentei alterar o código do cmdGerarGraf_Click populando o DataTable, mas desta forma o gráfico fica vazio:

private void cmdGerarGraf_Click(object sender, EventArgs e)
{
string sql = “”;
sql += " Select ";
sql += " Quantidade, Descricao ";
sql += " From Dados ";

        DataTable results = new DataTable();

       string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\\Users\\leandro.damasceno\\Documents\\Visual Studio 2015\\Projects\\FrmtabGraf\\FrmtabGraf\\loja.mdb";

        using (OleDbConnection conn = new OleDbConnection(connString))
        {
            OleDbCommand cmd = new OleDbCommand(sql, conn);
            conn.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);


            chartGraf.DataSource = results;
            chartGraf.Series.Clear();

            chartGraf.Series.Add("go");
            chartGraf.Series["go"].XValueMember = "Quantidade";
            chartGraf.Series["go"].YValueMembers = "Descrição";
            
            chartGraf.DataBind();
            chartGraf.Show();
        }