Preencher o Gridview em tempo de execução usando o arquivo de texto

pode parecer um problema simples para muitos de vocês, mas quero que eu esteja tentando fazer é ler um arquivo de texto em um evento de clique usandoStreamReader (ASP.net & C #) depois de ler esse arquivo de texto eu estou dividindo cada linha com ',' delimitador e, em seguida, cada parte do que eu estou armazenando emDatatable's coluna e, em seguida, ligando a tabela de dados para o meu gridview, meu problema é que eu escrevi o código, mas eu estou ficando gridview vazio como este


Gridviews Column header eu criei a partir do designer comautogeneratecolumns="false"

meu código é

protected void readfile_Click(object sender, EventArgs e)
{
    string line;
    DataTable dt = new DataTable();
    using (StreamReader sr = new StreamReader(@"D:\Temp\fileread\readtext.txt"))
    {
        while ((line = sr.ReadLine()) != null)
        {
            string[] parts = line.Split(',');
            dt.Rows.Add();
            for (int i = 0; i < parts.Length; i++)
            {
                dt.Columns.Add();
                dt.Rows[0][i] = parts[i];
                MyGridView.DataSource = dt;
                MyGridView.DataBind();
            }
        }
        sr.Close();
    }

meu arquivo de texto tem dados

1,1,4,2,"#",Description1
5,5,4,2,"#",Description2
3,3,6,3,"#",Description3
2,2,4,2,"#",Description4
4,5,4,2,"#",Description5

Espero que você entenda o que eu estou tentando perguntar.

questionAnswers(3)

yourAnswerToTheQuestion