Ir para conteúdo

POWERED BY:

Arquivado

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

IvanASP

[Resolvido] Do Excel local para Tabela SQL remota

Recommended Posts

Galera do Forum:

 

Em uma aplicação ASP.NET (com VB.NET), como posso, a partir de uma planilha do excel, inserir dados em uma tabela de um banco SQL que se encontra em um servidor remoto?

Em outras palavras, tenho uma planilha local com várias linhas e várias colunas e gostaria de popular uma tabela no banco SQL.

Agradeço muito se alguem me der alguma dica de onde posso estudar tal assunto.

 

Grato

Ivan Albuquerque

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia é você ler esses dados com um Driver OleDb Alimentar um DataSet e a partir deste DataSet alimentar seu banco, de uma olhada neste exemplo:

'Declara as Variáveis e preenche o DataSet

Dim excconn As New OdbcConnection("Dsn=Arquivos do Excel;dbq=D:\Table\tabela.Xls;defaultdir=D:\Table;driverid=790;maxbuffersize=2048;pagetimeout=5")

Dim excda As New OdbcDataAdapter("Select * From Tabela", excconn)

Dim excds As New DataSet("Tabela")

excda.Fill(excds, "Tabela")

'Declara as Variáveis para a conexão do SQL Server

Dim conn As New SqlConnection("Data Source=NOMEDOSERVIDORSQL\SQLEXPRESS;Initial Catalog=MEUBANCODEDADOSSQL;User ID=sa; password=meupassworddousuario;")

'3 comandos Sql para inserir, atualizar e contar as linhas da minha tabela

Dim ins As New SqlCommand("Insert Into Tabela (CampoChave, Campo1, Campo2) Values (@CampoChave, @Campo1, @Campo2)", conn)

Dim upd As New SqlCommand("Update Tabela Set Campo1 = @Campo1, Campo2 = @Campo2 Where CampoChave = @CampoChave", conn)

Dim tst As New SqlCommand("Select Count(CampoChave) From Tabela Where CampoChave = @CampoChave", conn)

Dim cont As Integer

Try

'Abrindo a conexão do SQL

conn.Open()

For Each dr As DataRow In excds.Tables("Tabela").Rows

tst.Parameters.Clear()

tst.Parameters.AddWithValue("@CampoChave", dr("CampoChave"))

cont = Convert.ToInt32(tst.ExecuteScalar())

'Se o número de linhas maior que zero, atualiza os campos

'senão insere os dados novos

If cont > 0 Then

upd.Parameters.Clear()

upd.Parameters.AddWithValue("@CampoChave", dr("CampoChave"))

upd.Parameters.AddWithValue("@Campo1", dr("Campo1"))

upd.Parameters.AddWithValue("@Campo2", dr("Campo2"))

upd.ExecuteNonQuery()

Else

ins.Parameters.Clear()

ins.Parameters.AddWithValue("@CampoChave", dr("CampoChave"))

ins.Parameters.AddWithValue("@Campo1", dr("Campo1"))

ins.Parameters.AddWithValue("@Campo2", dr("Campo2"))

ins.ExecuteNonQuery()

End If

Next

Finally

'fecha a conexão

conn.Close()

End Try

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quintelab:

 

Mais uma vez, muito grato pela sua resposta.

 

Estou tentando o código que você me enviou, que vai ser bastante útil, mas preciso de mais uma dica, sem querer abusar da sua boa vontade.

 

Desta vez, é ler o conteúdo de 2 células de uma planilha Excel (2007) utilizando VB.NET.

 

O arquivo é C:\Teste.xlsx. Dentro dele, a planilha Plan1, e dentro da Plan1 as células A1 e A2.

 

Como posso transferir os conteúdos destas 2 células para dentro do programa em VB.NET ?

 

 

Grato

 

Ivan Albuquerque

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno Quintela - Quintelab:

 

Com a sua dica e o artigo do Macoratti, consegui ler os valores de uma planilha excel e colocá-los no banco de dados.

 

Muito obrigado pela sua ajuda.

 

Abraços

Ivan Albuquerque

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.