尝试使用SSIS

时间:2015-05-13 20:56:23

标签: vb.net excel ssis

我正在创建一个将excel文件导入跟踪系统的html页面。在按钮单击事件excel文件位于/ ssis包被触发/数据导入然后关闭。这是想法的工作流程。问题是在程序包执行之前,excel文件访问被拒绝

以下是确切错误:enter image description here

我试过了:

  • excel文件属性已经分享给每个人
  • identity impersonate设置为true
  • 硬编码路径

这是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中执行它时的包可以使用自己的连接管理器等工作。

1 个答案:

答案 0 :(得分:0)

要尝试的一些事情。如果他们不作为永久解决方案为您工作,他们至少应该确认您的代码正在运行,并且您正在处理持续性问题(似乎是这种情况)。

  • 将文件移至公用文件夹(C:\ Users \ Public)。
  • 以管理员身份运行您的应用程序(或Web浏览器)(如果适用于您的Windows版本)。
  • 如果您使用的是网络浏览器,请尝试使用其他浏览器。
  • 如果没有其他工作,请尝试将代码粘贴到Windows窗体应用程序中。

如果您在尝试所有这些操作后仍然遇到相同的错误,则需要再次查看代码。删除Try / Catch块以确定哪条线正在抛出错误。如果您尝试过硬编码,我猜它是SaveAs方法。我不确定FileUpload1是什么类,但是一些SaveAs方法不会覆盖现有文件,除非您明确告诉它们。查看相应的文档,看看您是否需要在文件名中传递True值。

用结果更新我们。至少,这应该缩小您的问题范围,并允许更好地诊断它。