Usuário com melhor resposta
Inserir um DataTable no banco

Pergunta
-
Tenho um método q ler um xls e me retorna um DataTable com 5mil linhas gostaria de saber se tem como eu atualizar/inserir os dados desse datatable no banco sem fazer outro loop.
tipo: "insert into pessoas values tabelaPessoas"
meu sistema usa EDM mais aceito qlqr sugestão
Respostas
-
Não consegui inserir a dataTable de uma vez no banco.
Resolvi assim:
DataTable dTable = ConverterExcelParaDataTable(); using(Conexao con = new Conexao()) { foreche(DataRow dr in dTable.Rows) { Cidade city = new Cidade(); city.Id = int.Parse(dr[0].toString()); city.Nome =dr[1].toString(); City.IdEstado = int.Parse(dr[2].toString()); con.Cidade.AddObjcts(city); }
int rowsAfect; //Variavel que recebera a quantidade linhas afetadas(só serve para conferir a quantidade de informação)
rowsAfect = con.saveChanged(); }
- Marcado como Resposta Gustavo A. Gonçalves quinta-feira, 5 de julho de 2012 03:22
Todas as Respostas
-
Gustavo você pode usar uma adaptação do SQL Bulk Copy + Entity, veja:
http://cgeers.com/2011/05/19/entity-framework-bulk-copy/
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Editado Vitor Mendes quarta-feira, 27 de junho de 2012 01:59
- Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator quarta-feira, 27 de junho de 2012 02:33
- Não Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator quarta-feira, 27 de junho de 2012 02:33
-
-
Olá Gustavo,
Uma solução é transformar o DataTable em XML e passar este conteúdo para um procedure.
Veja: http://stackoverflow.com/questions/424626/net-datatable-to-sql-server-stored-procedure-as-xml
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil -
Não consegui inserir a dataTable de uma vez no banco.
Resolvi assim:
DataTable dTable = ConverterExcelParaDataTable(); using(Conexao con = new Conexao()) { foreche(DataRow dr in dTable.Rows) { Cidade city = new Cidade(); city.Id = int.Parse(dr[0].toString()); city.Nome =dr[1].toString(); City.IdEstado = int.Parse(dr[2].toString()); con.Cidade.AddObjcts(city); }
int rowsAfect; //Variavel que recebera a quantidade linhas afetadas(só serve para conferir a quantidade de informação)
rowsAfect = con.saveChanged(); }
- Marcado como Resposta Gustavo A. Gonçalves quinta-feira, 5 de julho de 2012 03:22