从字符串中选择值以在vb.net中分配变量

从字符串中选择值以在vb.net中分配变量,vb.net,u2,Vb.net,U2,我有一个vb.net代码,它连接到我们的U2数据库,并通过一个子例程获取数据,当我显示数据时,它只是一个由“|”分隔的长字符串。我试图获取每个值并为其分配变量,以便将它们放入文本框中,但每次尝试拆分()或使用for循环语句时,我要么得到“string()无法转换为string”,要么就是整个字符串中的最后一个字母 这是我第一次尝试拉动绳子,看看是否能更容易地分开: Dim args As String = PKG_FUNCTION + "|" + PKG_SERVICE + "|" + PKG_

我有一个vb.net代码,它连接到我们的U2数据库,并通过一个子例程获取数据,当我显示数据时,它只是一个由“|”分隔的长字符串。我试图获取每个值并为其分配变量,以便将它们放入文本框中,但每次尝试拆分()或使用for循环语句时,我要么得到“string()无法转换为string”,要么就是整个字符串中的最后一个字母

这是我第一次尝试拉动绳子,看看是否能更容易地分开:

Dim args As String = PKG_FUNCTION + "|" + PKG_SERVICE + "|" + PKG_NUMBER
        Dim Subr As UniSubroutine
        Dim value As String

        Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
        With Subr
            .SetArg(0, args)
            .Call()

            value = (.GetArg(3))
            txtOutput.Text = value

        End With
        txtOutput.Text = value

    End Sub
这是我最初尝试的方式,使用UniDynArray:

Dim args As String = PKG_FUNCTION + "|" + PKG_SERVICE + "|" + PKG_NUMBER
        Dim Subr As UniSubroutine
        Dim outArray As UniDynArray
        Dim inArray As UniDynArray
        Dim errorArray As UniDynArray

        Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
        Subr.SetArg(0, args)

        Try
            Subr.Call()
        Catch Ex As Exception
            MsgBox("Error")
        End Try

        inArray = Subr.GetArgDynArray(0) 'Mach Input
        txtInput.Text = inArray.ToString()

        outArray = Subr.GetArgDynArray(3) 'Mach Output
        txtOutput.Text = outArray.ToString()

        errorArray = Subr.GetArgDynArray(4) 'Mach Error Output
        txtError.Text = errorArray.ToString()
        txtPackageID.SelectAll()
这是我尝试的每个返回“string不能转换为string()”或“char()不能转换为integer”的函数的

有了这个,我可以通过选择字符串的空格来从字符串中提取任何字母,例如:value(20)提取第20个字母,但我仍然不知道如何用它的分隔符分隔并提取每个元素

Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
With Subr
    .SetArg(0, args)
    .Call()

    value = (.GetArg(3))
    Dim first As New List(Of String) From {value(20)}
    For Each item As String In first
        txtOutput.Text = UCase(item)
    Next

End With

拆分为字符串中的i=目标值

    outArray = Subr.GetArgDynArray(3)
    value = outArray.ToString()
    dim strSplit as String() = value.split("|")
    txtOutput.text = split(i).Trim()

拆分为字符串中的i=目标值

    outArray = Subr.GetArgDynArray(3)
    value = outArray.ToString()
    dim strSplit as String() = value.split("|")
    txtOutput.text = split(i).Trim()

很遗憾,您没有向我们展示的一段代码中有一个错误。失败的循环在哪里?这2个是返回完整字符串的代码段。我已经尝试了很多导致错误的方法,所以基本上我只是在寻找其他提示或答案让我再试一次。UniDynArray不支持我尝试的每个方法,或者字符串无法转换,这意味着我完全做错了
string()无法转换为string
意味着在这种情况下,您有一个字符串数组根据文档,它是一个字节数组,但我不知道如何“拆分”听起来像是在一个数据库列中存储分隔数据。这绝不是一个好主意。遗憾的是,您没有向我们展示的一段代码中有一个错误。失败的循环在哪里?这2个是返回完整字符串的代码段。我已经尝试了很多导致错误的方法,所以基本上我只是在寻找其他提示或答案让我再试一次。UniDynArray不支持我尝试的每个方法,或者字符串无法转换,这意味着我完全做错了
string()无法转换为string
意味着在这种情况下,您有一个字符串数组根据文档,它是一个字节数组,但我不知道如何“拆分”听起来像是在一个数据库列中存储分隔数据。这绝不是一个好主意。