2013-03-28 13 views
6

Scenariusz: Zajmuję się tworzeniem aplikacji internetowej, która umożliwia użytkownikom przesyłanie plików Excel do odpowiednich tabel w bazie danych SQL Server 2008 R2. Prowadzę również proces ETL opracowany przy użyciu SSIS, gdy użytkownik kliknie przycisk przesyłania.Zapisywanie nazwy pliku w bazie danych SQL i uruchamianie pakietu ssis w tym samym czasie

Moje środowisko programistyczne: Asp.net, IIS7, C#, SQL Server 2008 R2

Jestem obecnie przed problemem zapisywania nazwy pliku pliku do innej kolumny w tabelach jak będę również tworzenie funkcja gridview dla użytkownika, aby wyświetlić pliki, które już zostały przesłane do bazy danych i umożliwia użytkownikom pobieranie plików błędów.

Pytanie: czy są jakieś sposoby na zapisanie nazwy pliku w tych samych tabelach podczas uruchamiania pakietów SSIS podczas procesu ETL?

Poniżej próbka przykładem moich kodów:

string filePath1 = Server.MapPath(System.IO.Path.GetFileName(file.FileName.ToString())); 
file.SaveAs(filePath1); 

package = app.LoadPackage(packageString, null); 
package.Connections["Excel Connection Manager"].ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath1 + ";Extended Properties=Excel 12.0;HDR=YES;IMEX=1"; 
Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute(); 

Metoda ta pozwala mi odzyskać Nazwa pliku:

String.Format("File : {0} uploaded.", file.FileName) 

Więc kiedy uruchomić pakiet, w jaki sposób zapisać nazwę pliku do stołów w tym samym czasie?

+0

udało mi się rozwiązać problem: – Spencer

+0

string connectionString = DAO.GetConnectionString(); SqlConnection sqlConn = new SqlConnection (connectionString); sqlConn.Open() strQuery = "update uploadSummaryDB set nazwa_pliku = @fileName gdzie id w (wybierz max (id) z uploadSummaryDB)"; Polecenie SqlCommand = new SqlCommand (strQuery, sqlConn); command.Parameters.Add ("@ fileName", SqlDbType.NVarChar) .Value = file.FileName.ToString(); command.ExecuteNonQuery(); – Spencer

+0

Cieszę się, że udało Ci się rozwiązać Twój problem. Proszę zamieścić swoją odpowiedź jako odpowiedź. W ten sposób inni ludzie mogą czerpać z tego więcej korzyści. – grahamj42

Odpowiedz

0
string connectionString = DAO.GetConnectionString(); 
SqlConnection sqlConn = new SqlConnection(connectionString); 
sqlConn.Open() 
strQuery = "update uploadSummaryDB set fileName = @fileName where id in (select max(id) from uploadSummaryDB)"; 
SqlCommand command = new SqlCommand(strQuery,sqlConn); 
command.Parameters.Add("@fileName", SqlDbType.NVarChar).Value = file.FileName.ToString(); command.ExecuteNonQuery(); 
Powiązane problemy