字符串不能为零长度错误

时间:2018-05-25 14:46:55

标签: sql vb.net ssis

我运行

时有一个Visual Basic脚本
Dim area As String = Row.Area.Substring(0, Row.Area.IndexOf("-") + 1)
Row.Area = Row.Area.Replace(area, "")

我收到此错误:

  

System.ArgumentException:String的长度不能为零。参数名称:Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(例外e)中的oldValue,位于Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer缓冲区)在Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostProcessInput(IDTSManagedComponentWrapper100包装器,Int32 inputID,IDTSBuffer100 pDTSBuffer,IntPtr

1 个答案:

答案 0 :(得分:1)

您需要检查区域是否包含连字符。否则Row.Area.Substring(0, Row.Area.IndexOf("-") + 1)将返回一个空字符串,并将空字符串传递给Replace是造成错误的原因。

所以(请原谅任何无效的VB.Net)

If Row.Area.Contains("-") Then
    Dim area As String = Row.Area.Substring(0, Row.Area.IndexOf("-") + 1)
    Row.Area = Row.Area.Replace(area, "")
End If