我正在创建一个将excel文件导入跟踪系统的html页面。在按钮单击事件excel文件位于/ ssis包被触发/数据导入然后关闭。这是想法的工作流程。问题是在程序包执行之前,excel文件访问被拒绝
以下是确切错误:
我试过了:
这是VB代码
Protected Sub bntExecute_Click(sender As Object, e As EventArgs) Handles btnExecute.Click
Dim app As Application = New Application()
Dim package As Package = Nothing
'Dim fileName As String = "C:\Users\Desktop\T. Bryant III\PTSID_Update_Template"'
Try
Dim fileName As String = Server.MapPath(System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName.ToString()))
FileUpload1.PostedFile.SaveAs(fileName)
package = app.LoadPackage("@C:\Users\Desktop\T.Bryant III\KitImport", Nothing)
'excel connection from package'
package.Connections("SourceConnectionExcel").ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0data source =" + fileName + "Extended Properties = Excel 8.0"
'Execute the pakage'
Dim results As Microsoft.SqlServer.Dts.Runtime.DTSExecResult = package.Execute()
Catch ex As Exception
Throw ex
Finally
package.Dispose()
package = Nothing
End Try
End Sub
提前致谢或者如果有更简单的方法,请告诉我们。在ssis中执行它时的包可以使用自己的连接管理器等工作。
答案 0 :(得分:0)
要尝试的一些事情。如果他们不作为永久解决方案为您工作,他们至少应该确认您的代码正在运行,并且您正在处理持续性问题(似乎是这种情况)。
如果您在尝试所有这些操作后仍然遇到相同的错误,则需要再次查看代码。删除Try / Catch块以确定哪条线正在抛出错误。如果您尝试过硬编码,我猜它是SaveAs方法。我不确定FileUpload1是什么类,但是一些SaveAs方法不会覆盖现有文件,除非您明确告诉它们。查看相应的文档,看看您是否需要在文件名中传递True值。
用结果更新我们。至少,这应该缩小您的问题范围,并允许更好地诊断它。