6

シナリオ: ユーザーが Excel ファイルを SQL Server 2008 R2 データベースのそれぞれのテーブルにアップロードできるようにする Web アプリケーションを開発しています。ユーザーがアップロード ボタンをクリックすると、SSIS を使用して開発された ETL プロセスも実行しています。

私の開発環境: Asp.net、IIS7、C#、SQL Server 2008 R2

現在、ファイルのファイル名をテーブルの別の列に保存するという問題に直面しています。これは、ユーザーがデータベースに既にアップロードされているファイルを表示し、ユーザーがファイルをダウンロードできるようにするための gridview 関数も作成するためです。エラーファイル。

質問: ETL プロセス中に SSIS パッケージを実行しているときに、ファイル名を同じテーブルに保存する方法はありますか?

以下は私のコードのサンプル例です:

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();

このメソッドを使用すると、 fileName を取得できます。

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

では、パッケージを実行するときに、同時にファイル名をテーブルに保存するにはどうすればよいでしょうか?

4

1 に答える 1

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();
于 2013-03-28T14:44:51.733 に答える