Jump to content

Carregar dados em C#


Moohsilva

Recommended Posts

Boas,
Tenho em ideia fazer o seguinte, colocar um "FileUpload" na pagina, onde o utilizador só tinha de carregar um ficheiro em Excel que terá uma estrutura basica mas que conseguisse através de código ler as colunas desejadas para passar os dados para um ArrayList por exemplo e de seguida carregar esse Array para a estrutura da minha base de dados em SQL Server. A minha duvida, é qual será o melhor procedimento e como o fazer da melhor maneira, porque nem sei se é possivel carregar um ficheiro Excel e a pagina conseguir obter os dados, se tenho de converter o Excel de alguma maneira em xml ou wtv.
Se alguém tiver sugestões de como posso fazer isto, desde já agradeço.

Link to comment
Share on other sites

É possível de fazeres isso sem grande problema.
Podes ver um tutorial aqui: http://csharp.net-informations.com/excel/csharp-read-excel.htm e aqui https://coderwall.com/p/app3ya/read-excel-file-in-c

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Não percebi o teu problema.

Quando fazes upload abres o ficheiro, lês/carregas a informação, fechas o ficheiro e depois apagas o mesmo. Este é o ciclo normal numa situação dessas.

O gestor de tarefas não mantém processos abertos, limita-se os processos que estão a correr, no teu caso serão processos de IIS (w3wp ou lá como se chama) e de Visual Studio se estiveres a fazer debug.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Sim ele faz a abertura, carrego a informação para a base de dados, mas depois ao fechar, eu acho que não esta a fechar correctamente, porque fica sempre com o processo do Excel.exe no gestor de tarefas e tenho de ir apagar manualmente se não começa a dar problemas de ficheiro usado em outro processo.. o código que estou a usar para fechar depois de já ter efectuado todas as minhas ações é o seguinte: 

//cleanup
GC.Collect();
GC.WaitForPendingFinalizers();

//release com objects to fully kill excel process from running in the background
Marshal.ReleaseComObject(xlRange);
Marshal.ReleaseComObject(xlWorksheet);

//close and release
xlWorkbook.Close();
Marshal.ReleaseComObject(xlWorkbook);

//quit and release
xlApp.Quit();
Marshal.ReleaseComObject(xlApp);

Mas ao que parece, não deve estar 100% funcional ..

Edited by Moohsilva
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.