c# - 将文件名保存到sql数据库并同时运行ssis包

标签 c# asp.net sql ssis sql-server-2008-r2

场景:我正在开发一个 Web 应用程序,允许用户将 Excel 文件上传到 SQL Server 2008 R2 数据库中各自的表中。当用户单击上传按钮时,我还运行使用 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();

此方法允许我检索文件名:

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

那么当我执行包的时候,如何同时将文件名保存到表中呢?

最佳答案

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

关于c# - 将文件名保存到sql数据库并同时运行ssis包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15672844/

相关文章:

asp.net - 如何获取数据库删除时间?

javascript - Asp.net 使用 jQuery 将文本框输入转换为大写

c# - 如何将字符串输入从 C# 传递到控制台?

c# - 在 Repeater 内的 Lightbox 内查找 RadioButton 的选定值

c# - 为什么我应该在 C# 中使用 int 而不是 byte 或 short

mysql - SQL 新手 - 需要查询方面的帮助

sql - 从应用程序插入/更新/删除数据库中的多条记录的最佳方法是什么?

c# - 在 MVC4 中使用 @Html.RenderAction 不显示页面

C# 中的 Java get() 功能

mysql - 保留已回答的问题并删除按选择 SQL 分组的其他问题