vb.net代码条件逻辑

时间:2012-01-17 22:15:55

标签: sql-server vb.net

我有以下一段代码可以正常工作并完成它的目的。但是我的源数据在最底部添加了一条线,这使得这件事情破裂了。当我去删除最后一行时,此代码工作正常。我不想每天运行这个脚本手动修改文件。以下是代码。有什么方法可以忽略我输入的最后一行并处理其余部分。我知道它是一个简单的条件if-else,但我对.net没有任何线索,其他人帮我写了这段代码。提前致谢。

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    Dim strRow As String
    Dim strColSeperator As String
    Dim rowValues As String()
    strRow = Row.Line.ToString()
    If strRow.Contains(",") Then
        strColSeperator = (",")
    ElseIf strRow.Contains(";") Then
        strColSeperator = ";"
    End If

    rowValues = Row.Line.Split(CChar(strColSeperator))
    Row.Code = rowValues.GetValue(0).ToString()
    Row.Description = rowValues.GetValue(1).ToString()
    Row.Blank = rowValues.GetValue(2).ToString()
    Row.Weight = rowValues.GetValue(3).ToString()
    Row.Scan = rowValues.GetValue(4).ToString()

End Sub

样本输入数据:643492,PV STRIP 1X1 UTILITY UP ,, 58,893454 输入文件的最后一行:“EndDb”

1 个答案:

答案 0 :(得分:1)

这样的事情可以解决问题:

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    Dim strRow As String
    Dim strColSeperator As String
    Dim rowValues As String()
    strRow = Row.Line.ToString()
    If strRow.Contains(",") Then
        strColSeperator = (",")
    ElseIf strRow.Contains(";") Then
        strColSeperator = ";"
    End If

    rowValues = Row.Line.Split(CChar(strColSeperator))
    If (rowValues.Length > 1) Then
    Row.Code = rowValues.GetValue(0).ToString()
    Row.Description = rowValues.GetValue(1).ToString()
    Row.Blank = rowValues.GetValue(2).ToString()
    Row.Weight = rowValues.GetValue(3).ToString()
    Row.Scan = rowValues.GetValue(4).ToString()
    End If

End Sub