我确定这是一个简单的问题,但我正在尝试将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
感谢您的帮助!
答案 0 :(得分:4)
我想出了这个问题!它与数据中的NULLS有关。我没有提供数据,我只是解析它,发现有一些我不知道的NULL。
为了解决这个问题,我使用了:
If Row.addrmap_IsNull = False and Row.addrpar_IsNull = False Then
...
End If
答案 1 :(得分:3)
您是否已将新输出列添加到“脚本组件任务”的“输入和输出”属性窗格中?