none
Exportar dados DataGrid para txt sem apagar DataGrid RRS feed

  • Pergunta

  • Estou exportando dados do dataGrid para txt mas o problema é que ele apaga o dados do dataGrid depois

    Private Sub ExportaArquivoTexto()
    
            Dim salvarComo As SaveFileDialog = New SaveFileDialog()
            Dim caminho As DialogResult
            Dim fluxoTexto As IO.StreamWriter
            Dim Arquivo As String
    
            salvarComo.CheckFileExists = False
            salvarComo.Filter = "Documentos de texto (*.txt)|*.txt"
            caminho = salvarComo.ShowDialog
            Arquivo = salvarComo.FileName
    
    
            If Arquivo = Nothing Then
                MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK)
            Else
    
                fluxoTexto = New IO.StreamWriter(Arquivo)
    
                Using writer As New StreamWriter(caminho)
                    Dim i As Integer
                    For i = 0 To DataGridView1.Rows.Count - 1
                        fluxoTexto.WriteLine( _
                          DataGridView1.CurrentRow.Cells(2).Value.ToString.Trim() _
                          & DataGridView1.CurrentRow.Cells(3).Value.ToString.Trim() _
                          & DataGridView1.CurrentRow.Cells(5).Value.ToString.Trim() _
                          & DataGridView1.CurrentRow.Cells(6).Value.ToString.Trim())
    
    
                        '  'Remove o que tem no DataGrid
                        DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)
    
                    Next
                End Using
    
    
    
    
                fluxoTexto.Close()
    
            End If
    
            
           
    
    
    
    
        End Sub
    O problema é essa linha 
              '  'Remove o que tem no DataGrid
                        DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)

    Mas se eu remover ela, não exporta

    terça-feira, 31 de dezembro de 2013 16:59

Respostas

  • Esta dando erro, ta faltando algum parenteses, não conseguir saber onde por o parentese que falta

    A primeira imagem aquele item é fora do For igual eu coloquei no Exemplo!

    a Segunda imagem ta faltando parentenses porque como sou desenvolvedor C# (mais sei vb.net) de vez em quando esqueço que no lugar de [ é (

    Segue correção do código só da parte principal:

    Using writer As New StreamWriter(caminho)
    	Dim i As Integer
    	For i = 0 To DataGridView1.Rows.Count - 1
    		fluxoTexto.WriteLine( _
    		  DataGridView1.Rows(i).Cells(2).Value.ToString.Trim() _
    		  & DataGridView1.Rows(i).Cells(3).Value.ToString.Trim() _
    		  & DataGridView1.Rows(i).Cells(5).Value.ToString.Trim() _
    		  & DataGridView1.Rows(i).Cells(6).Value.ToString.Trim())
    	Next
    	'NO FINAL SE MANDA EXCLUIR TUDO
    	DataGridView1.Rows.Clear()
    End Using
    Essa é a solução !!!
     

    Fulvio Cezar Canducci Dias

    quarta-feira, 1 de janeiro de 2014 12:33

Todas as Respostas

  • Estou exportando dados do dataGrid para txt mas o problema é que ele apaga o dados do dataGrid depois

    Private Sub ExportaArquivoTexto()
    
            Dim salvarComo As SaveFileDialog = New SaveFileDialog()
            Dim caminho As DialogResult
            Dim fluxoTexto As IO.StreamWriter
            Dim Arquivo As String
    
            salvarComo.CheckFileExists = False
            salvarComo.Filter = "Documentos de texto (*.txt)|*.txt"
            caminho = salvarComo.ShowDialog
            Arquivo = salvarComo.FileName
    
    
            If Arquivo = Nothing Then
                MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK)
            Else
    
                fluxoTexto = New IO.StreamWriter(Arquivo)
    
                Using writer As New StreamWriter(caminho)
                    Dim i As Integer
                    For i = 0 To DataGridView1.Rows.Count - 1
                        fluxoTexto.WriteLine( _
                          DataGridView1.CurrentRow.Cells(2).Value.ToString.Trim() _
                          & DataGridView1.CurrentRow.Cells(3).Value.ToString.Trim() _
                          & DataGridView1.CurrentRow.Cells(5).Value.ToString.Trim() _
                          & DataGridView1.CurrentRow.Cells(6).Value.ToString.Trim())
    
    
                        '  'Remove o que tem no DataGrid
                        DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)
    
                    Next
                End Using
    
    
    
    
                fluxoTexto.Close()
    
            End If
    
            
           
    
    
    
    
        End Sub
    O problema é essa linha 
              '  'Remove o que tem no DataGrid
                        DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)

    Mas se eu remover ela, não exporta

    Mude esse trecho no seu código:

    For i = 0 To DataGridView1.Rows.Count - 1
    	fluxoTexto.WriteLine( _
    	  DataGridView1.Rows[i].Cells(2).Value.ToString.Trim() _
    	  & DataGridView1.Rows[i].Cells(3).Value.ToString.Trim() _
    	  & DataGridView1.Rows[i].Cells(5).Value.ToString.Trim() _
    	  & DataGridView1.Rows[i].Cells(6).Value.ToString.Trim())
    Next
    'NO FINAL SE MANDA EXCLUIR TUDO
    dataGridView1.Rows.Clear()

    Código total

    Private Sub ExportaArquivoTexto()
    	Dim salvarComo As SaveFileDialog = New SaveFileDialog()
    	Dim caminho As DialogResult
    	Dim fluxoTexto As IO.StreamWriter
    	Dim Arquivo As String
    	salvarComo.CheckFileExists = False
    	salvarComo.Filter = "Documentos de texto (*.txt)|*.txt"
    	caminho = salvarComo.ShowDialog
    	Arquivo = salvarComo.FileName
    	If Arquivo = Nothing Then
    		MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK)
    	Else
    		fluxoTexto = New IO.StreamWriter(Arquivo)
    		Using writer As New StreamWriter(caminho)
    			Dim i As Integer
    			For i = 0 To DataGridView1.Rows.Count - 1
    				fluxoTexto.WriteLine( _
    				  DataGridView1.Rows[i].Cells(2).Value.ToString.Trim() _
    				  & DataGridView1.Rows[i].Cells(3).Value.ToString.Trim() _
    				  & DataGridView1.Rows[i].Cells(5).Value.ToString.Trim() _
    				  & DataGridView1.Rows[i].Cells(6).Value.ToString.Trim())
    			Next
    			'NO FINAL SE MANDA EXCLUIR TUDO
    			dataGridView1.Rows.Clear()
    		End Using
    		fluxoTexto.Close()
    	End If
    End Sub


    Fulvio Cezar Canducci Dias

    terça-feira, 31 de dezembro de 2013 19:39
  • Esta dando erro, ta faltando algum parenteses, não conseguir saber onde por o parentese que falta

    quarta-feira, 1 de janeiro de 2014 00:40
  • Esta dando erro, ta faltando algum parenteses, não conseguir saber onde por o parentese que falta

    A primeira imagem aquele item é fora do For igual eu coloquei no Exemplo!

    a Segunda imagem ta faltando parentenses porque como sou desenvolvedor C# (mais sei vb.net) de vez em quando esqueço que no lugar de [ é (

    Segue correção do código só da parte principal:

    Using writer As New StreamWriter(caminho)
    	Dim i As Integer
    	For i = 0 To DataGridView1.Rows.Count - 1
    		fluxoTexto.WriteLine( _
    		  DataGridView1.Rows(i).Cells(2).Value.ToString.Trim() _
    		  & DataGridView1.Rows(i).Cells(3).Value.ToString.Trim() _
    		  & DataGridView1.Rows(i).Cells(5).Value.ToString.Trim() _
    		  & DataGridView1.Rows(i).Cells(6).Value.ToString.Trim())
    	Next
    	'NO FINAL SE MANDA EXCLUIR TUDO
    	DataGridView1.Rows.Clear()
    End Using
    Essa é a solução !!!
     

    Fulvio Cezar Canducci Dias

    quarta-feira, 1 de janeiro de 2014 12:33