1

我确定这是一个简单的问题,但我正在尝试将 2 列合并到一个新的输出列中,但没有任何运气。每次我得到一个“对象引用未设置为对象的实例”。错误

这是我的代码:

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        '
        ' Add your code here
        '
        Dim tmpStr As String
        tmpStr = ""
        If Not IsNumeric(Row.addrmap.ToString) Then
            tmpStr = Row.addrmap.ToString.Substring(Row.addrmap.ToString.Length - 2, 1)
            tmpStr = Row.addrmap.ToString.Remove(Row.addrmap.ToString.Length - 2, 1).PadLeft(3, CChar("0")) & " " & tmpStr.PadLeft(3, CChar("0")) & " " & Row.addrpar.ToString

        Else
            tmpStr = Row.addrmap.ToString.PadLeft(3, CChar("0")) & " " & "000 " & Row.addrpar.ToString
        End If
        Row.addrMapPar = tmpStr
    End Sub

End Class

谢谢您的帮助!

4

2 回答 2

4

我发现了问题!它与数据中的 NULLS 有关。我没有提供数据,我只是在解析它,发现有一些我不知道的 NULL。

为了修复它,我使用了:

If Row.addrmap_IsNull = False and Row.addrpar_IsNull = False Then
...
End If
于 2011-03-08T16:39:02.487 回答
3

Have you added the new output column to the Inputs And Outputs property pane of the Script Component Task? enter image description here

于 2011-03-07T19:19:19.840 回答