Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thor28

Ler datagrid

Recommended Posts

Amigos, estou com dificuldade de ler um datagrid gerado para poder escrever em um BD em access. O programa lê um arquivo do Excel e mostra em um datagrid que deveria ser lido novamente e alimentado um BD do Access, porém não sei como proceder. Meu código inacabado:

 

Private Sub btnCarrega_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCarrega.Click
        Dim strConnExcel As String = "Provider=Microsoft.ACE.OLEDB.12.0;" _
              & "Data Source=D:\\Arquivo.xlsx;" _
              & "Extended Properties=""Excel 12.0 Xml; IMEX=1; HDR=YES;""" 'HDR Skip the first line on Excel

        Try
        Catch ex As Exception
            Me.lblMessage.Text = "Erro na conexão com a planilha. " & ex.Message
        End Try

        'Create the connection from Excel

        Dim objConnExcel As New OleDbConnection(strConnExcel)
        Dim strSqlExcel As String = "SELECT * FROM [plan1$] "
        Dim cmdExcel As New OleDbCommand(strSqlExcel, objConnExcel)


        Try

            'Open the connection and run the SQL and links to DataGrid to view data
            objConnExcel.Open()
            dtgArquivo.DataSource = cmdExcel.ExecuteReader()
            dtgArquivo.DataBind()


            '*************************************************


            'Now I need to write in the Access BD
            Dim strSql2 As String
            Dim objConnAccess As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" _
                       & "Data Source=D:\\BD.accdb;" _
                       & "Persist Security Info=False;")

            Try
                objConnAccess.Open()
                Dim cmdAccess As New OleDBCommand(strSql2, objConnAccess)
                Dim readerAccess As OleDbDataReader

                readerAccess = cmdAccess.ExecuteReader()

                If readerAccess.HasRows Then
                    While readerAccess.Read()
                        strSql2 = "INSERT INTO Table (StringValue) VALUES ('" & readerAccess.getValue(0) & "','" & readerAccess.getValue(0) & "')"
                        Dim objCmd1 As New OleDbCommand(strSql2, objConnAccess)
                    End While
                End If

                readerAccess.Close()

            Catch exc As Exception
                Response.Write(exc.ToString())
            Finally
                objConnAccess.Close()
            End Try

            '******************************************************

        Catch exc As Exception
            Response.Write(exc.ToString())
        Finally
            objConnExcel.Close()
        End Try
    End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você conseguiu carregar o datagrid só não conseguiu alimentar o Access ???

 

Ou nem exibir no DataGrid ??

 

Olá, obrigado pelo interesse. Sim ele exibe os dados do Excel no datagrid. Agora não estou sabendo fazer ler estes dados da tabela gerada (datagrid) e gravar no Access. Na verdade eu precisava que somente uma coluna fosse passada pro banco, que se refere ao número do cliente.

 

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perdão não havia visto a tua resposta

.......................................

 

Vamos lá, você deve fazer assim

 

Digamos, que datagrid se chama "dgTeste"

 

 

Você deve colocar verificar o id da coluna IdCliente

 

Seria interessante você interromper o código (F9) e procura os nomes com

 

dgTeste.columns(0).columnname

dgTeste.columns(1).columnname

dgTeste.columns(2).columnname

 

For Each dg As DataGridViewRow In dgTeste.Rows

 

dim idcliente as string = dg.Cells("idcliente").Value

 

Next

 

qq coisa é só postar

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.