Google 电子表格到 SSIS VB 代码问题

Google Spreadsheet to SSIS VB Code issue

要求: 通过 SSIS 将 Google 电子表格数据转换为 SQL 服务器。

方法:this 网站的帮助下,我正在 Visual Studio 2015 社区版中进行编码。我准备了变量、控制流、数据流并添加了脚本组件和所需的 Google 参考资料。

作为 Visual Basic 2015 在 VS 中粘贴的代码:

Imports System
Imports System.Data

Imports System.Math

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports Google.GData.Client

Imports Google.GData.Extensions

Imports Google.GData.Spreadsheets

<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> 'Line 15 Error here

<CLSCompliant(False)> 'Line 17 Error here

Public Class ScriptMain

    Inherits UserComponent

    Dim objListFeed As ListFeed

    Public Overrides Sub PreExecute()

        MyBase.PreExecute()


        Dim objService As SpreadsheetsService
        Dim objWorkSheetQuery As WorksheetQuery

        Dim objWorkSheetFeed As WorksheetFeed
        Dim objWorkSheet As WorksheetEntry

        Dim objListFeedLink As AtomLink
        Dim objListQuery As ListQuery

        Dim bt(0) As Byte

        'Create a connection to the google account 

        objService = New SpreadsheetsService("exampleCo-exampleApp-1")

        Me.Log(Variables.strPassword, 0, bt)

        Me.Log(Variables.strUserName, 0, bt)

        objService.setUserCredentials(Variables.strUserName, Variables.strPassword)

        Me.Log("Service: " + Variables.strUserName, 0, bt)


        'Connect to a specific spreadsheet 

        objWorkSheetQuery = New WorksheetQuery(Variables.strKey, "private", "full")

        objWorkSheetFeed = objService.Query(objWorkSheetQuery)

        objWorkSheet = objWorkSheetFeed.Entries(0)

        Me.Log("Spreadsheet: " + objWorkSheet.Title.Text.ToString, 0, bt)

        'Get a list feed of all the rows in the spreadsheet 

        objListFeedLink = objWorkSheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, Nothing)

        objListQuery = New ListQuery(objListFeedLink.HRef.ToString())
        objListFeed = objService.Query(objListQuery)

        Me.Log("ListFeed: " + objListFeed.Feed.ToString, 0, bt)

    End Sub

    Public Overrides Sub PostExecute()

        MyBase.PostExecute()

    End Sub


    Public Overrides Sub CreateNewOutputRows()

        Dim objRow As ListEntry

        For Each objRow In objListFeed.Entries

            With Output0Buffer

                .AddRow()

                .Product = objRow.Elements.Item(0).Value

                .Qty = objRow.Elements.Item(1).Value



            End With

        Next


        Output0Buffer.EndOfRowset()

    End Sub

End Class

问题: 按 Build 后,第 15 和 17 行出现以下错误。

BC32035 VB.NET Attribute specifier is not a complete statement. Use a line continuation to apply the attribute to the following statement.

Here 它说要在属性后面添加一个 space 和下划线,但是,当我添加它们时,它们会自动删除。

我刚刚在新的 SSIS 包数据流中创建了一个新的脚本组件,下面是导入块和 Class 声明之间的行:

' This is the class to which to add your code.  Do not change the name, attributes, or parent
' of this class.
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent

我从未听说过您描述的下划线只是 "disappear" 的情况,但如果您将这些行粘贴到您的行上,它可能会起作用。

如果没有,您可能需要将您的代码复制到剪贴板,然后销毁脚本组件并创建一个新的脚本组件,并将您的代码粘贴到其中。