Problema com DataSet DataGridView [C#]

Tudo bem?

Estou tendo problemas ao popular um DataGridViewcom os dados do DataSet.

No meu button1 eu realizo a busca, leitura e importação para o DataGriView de todos arquivos xml de um determinado diretório. Até aí funciona normal, os dados são exibidos no DataGridView.

  DataSet dataSet = new DataSet();          try         {             string[] array2 = Directory.GetFiles("temPFiles", "*.xml");               foreach (string name in array2)             {                 dataSet.ReadXml(name);                 dtGridViewImportacao.DataSource = dataSet.Tables[9];             }               try             {                 prgsbarImportacaoXML.BeginInvoke(new Action(() => {                     prgsbarImportacaoXML.Style = ProgressBarStyle.Marquee;                 }));                  prgsbarImportacaoXML.BeginInvoke(new Action(() => {                     prgsbarImportacaoXML.MarqueeAnimationSpeed = 5;                 }));                  lblStatus.BeginInvoke(new Action(() =>                 {                     lblStatus.Text = "     Lendo arquivos XML individualmente...";                 }));               }             catch (Exception exImportarArqXML)             {                  MessageBox.Show("Não foi possível realizar a importação do conteúdo do arquivo XML e salvá-lo. Certifique-se de que o mesmo possui uma estrutura correta e válida para um XML de compra. A aplicação está sendo encerrada. Certifique-se de que o arquivo selecionado remete-se a um XML associado a uma Nota Fiscal de COMPRA!\n\n" + exImportarArqXML.Message, "ERRO!", MessageBoxButtons.OK, MessageBoxIcon.Error);                 this.Close();             }            }         catch (Exception exLeituraXML)         {              MessageBox.Show("Erro ao realizar a leitura individual dos arquivos XML obtidos!\n\n" + exLeituraXML.Message, "ERRO!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);             Close();         } 

inserir a descrição da imagem aqui

Porém no button2, ao remover algumas colunas que não necessito, ocorre o seguinte erro:

‘InvalidArgument=Value ‘1’ não é um valor válido para ‘index’. Arg_ParamName_Name’

na seguinte parte do código:

 this.Invoke(new Action(() => lblStatus.Text = "  Reorganizando colunas desnecessárias para leitura..."));          dtGridViewImportacaoXML.Columns.RemoveAt(1); //ERRO AQUI         dtGridViewImportacaoXML.Columns.RemoveAt(2); //ERRO AQUI           dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("CFOP");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));           dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("uCom");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));           dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("qCom");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));          dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("vUnCom");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {             }         }));           dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("vProd");               }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));          dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("cEANTrib");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));           dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("uTrib");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));          dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("qTrib");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));          dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("vUnTrib");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));           dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("vDesc");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));           dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("indTot");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));           dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("CEST");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));          dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("indEscala");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));          dtGridViewImportacaoXML.BeginInvoke(new Action(() => {              try             {                 dtGridViewImportacaoXML.Columns.Remove("xPed");              }             catch (System.ArgumentException)             {              }              catch (Exception exCPROD)             {              }          }));          dtGridViewImportacaoXML.BeginInvoke(new Action(() => {             try             {                  dtGridViewImportacaoXML.Columns.Remove("nFCI");              }             catch (System.ArgumentException)             {              }               catch (Exception exCPROD)             {              }         }));             //lblStatus.BeginInvoke(new Action(() =>         //{         //    lblStatus.Text = "     Renomeando colunas necessárias para leitura...";         //}));          //dtGridViewImportacaoXML.BeginInvoke(new Action(() =>         //{         //    try         //    {         //        dtGridViewImportacaoXML.Columns[0].HeaderText = "Cód. Barras";         //    }         //    catch (Exception exCodBarras)         //    {          //        MessageBox.Show("Não foi possível encontrar a coluna referente ao Código de Barras do(s) produto(s). A aplicação está sendo encerrada. Certifique-se de que o arquivo selecionado remete-se a um XML associado a uma Nota Fiscal de COMPRA!\n\n" + exCodBarras.Message, "ERRO!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);         //        Application.Exit();         //    }          //}));          //dtGridViewImportacaoXML.BeginInvoke(new Action(() =>         //{         //    try         //    {         //        dtGridViewImportacaoXML.Columns[1].HeaderText = "NCM's";         //    }         //    catch (Exception exNCM)         //    {          //        MessageBox.Show("Não foi possível encontrar a coluna referente ao NCM do(s) produto(s). A aplicação está sendo encerrada. Certifique-se de que o arquivo selecionado remete-se a um XML associado a uma Nota Fiscal de COMPRA!\n\n" + exNCM.Message, "ERRO!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);         //        Application.Exit();         //    }          //})); 

Parece ser como se não houvessem as colunas.

Então no meu button3, que seria a exportação dos registros para um arquivo de texto, também não acontece nada. Mesmo existindo os registros no datagrid, nada é exportado.

for (int i = 0; i < dtGridViewImportacaoXML.Rows.Count - 1; i++)         {             using (System.IO.StreamWriter file =             new System.IO.StreamWriter(@"DataBase\db.txt", true))             {                  try                 {                     file.WriteLine(dtGridViewImportacaoXML.Rows[i].Cells[0].Value.ToString() + "," + dtGridViewImportacaoXML.Rows[i].Cells[1].Value.ToString());                  }                 catch (Exception exLerLinha)                 {                      MessageBox.Show("Não foi possível realizar a leitura individual das linhas do arquivo XML. Certifique-se de que o mesmo possui uma estrutura correta e válida para um XML de compra. A aplicação está sendo encerrada. Certifique-se de que o arquivo selecionado remete-se a um XML associado a uma Nota Fiscal de COMPRA!\n\n" + exLerLinha.Message, "ERRO!", MessageBoxButtons.OK, MessageBoxIcon.Error);                     this.Close();                 }               }          } 

O curioso é que eu utilizei os seguintes MessageBox nos eventos Click's de cada button para verificar a quantidade de registros e colunas, ambos aparecem valores maiores que zero.

MessageBox.Show(dtGridViewImportacao.Rows.Count.ToString()); // QUANTIDADE DE REGISTROS É MAIOR QUE 0   MessageBox.Show(dtGridViewImportacao.Columns.Count.ToString()); // QUANTIDADE DE COLUNAR É MAIOR QUE 0 

Alguém saberia me dizer onde estou errando, por gentileza? Desde já agradeço a atenção de todos!