将数据库列字符串拆分为多个变量

Split Database column string into multiple variables

我的数据库中有一个字符串值显示如下内容(在一列中):

100 | | | 6 |  |  | 8 |

| 之间的空格是空字符串,具体取决于用户最初提供的内容。

我有 7 个文本框,为 | 之间的每个值填充。 我想拆分值并像这样将它们填充到每个文本框中

Textbox1 = 100
Textbox2 = ""
Textbox3 = ""
Textbox4 = 6

...etc

我打算做的是,如果文本框是空的,我会隐藏它们(我知道该怎么做)。我只需要帮助拆分字符串。

我尝试通过对我的代码执行以下操作来引用 Split a string based on "|" delimiter & set values to different Arrays

If Not DsAds.Tables(0).Rows(0).Item(16) Is DBNull.Value Then

   LargeBus.Text = DsAds.Tables(0).Rows(0).Item(16)
End If

Dim webV As String = LargeBus.Text
Dim secondlinestring As String = webV
Dim strarr() As String
strarr = secondlinestring.Split("|"c)
  For Each s As String In strarr
            MsgBox(s)
  Next

我将 If DsAds.Tables(0).Rows(0).Item(16) 列的完整字符串添加到 7 个文本框的第一个中,这样我就可以将其另存为字符串并拆分。问题是当 MsgBox 弹出时框是空的。所以我的拆分不起作用加上 我真正想要的是拆分 | 中的每个数字并将它们保存到一个新变量中,例如 :

var1 = 100
var2 = ""
var3 = ""
var4 = 6   ...etc

感谢任何帮助。

我还尝试了 splitting a string into multiple variables

Dim str As String = DsAds.Tables(0).Rows(0).Item(16)
        Dim strarr As String = str.Split(New Char() {"|"c}, StringSplitOptions.RemoveEmptyEntries)

        Dim str1 As String = strarr(0)
        Dim str2 As String = strarr(1)
        Dim str3 As String = strarr(2)
        Dim str4 As String = strarr(3)
        Dim str5 As String = strarr(4)
        Dim str6 As String = strarr(5)
        Dim str7 As String = strarr(6)

但报错:一维字符串类型数组的值无法转换为字符串

这是一个语法问题。您在变量声明中缺少 () 。您还可能希望在上面的示例中保留空条目。您不需要为每个元素设置变量,只需将元素分配给文本框即可。

 Dim strarr() As String = str.Split("|"c)

 'no variables needed
 Textbox1.Text = strarr(0)
 Textbox2.Text = strarr(1)

根据@OneFineDay 的例子,我想出了一个办法。

Dim str As String = Convert.ToString(DsAds.Tables(0).Rows(0).Item(19))
Dim strarray() As String = str.Split("|"c)


Dim x As Integer = 0

        For Each str In strarray
            Dim s As String = ""
            s = strarray(x)
            x = x + 1
        Next

        LargeBus.Text = strarray(0)
        SmallBus.Text = strarray(1)
        MinBus.Text = strarray(2)
        ...etc

我意识到的另一个问题是我的初始字符串是从错误的 Item() 值中提取的。我有 Item(16) 而不是 Item(19) ,它给了我一个空值,因为该列实际上是空的