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

时间:2015-10-13 17:33:24

标签: vb.net string split oracle10g

我的数据库中有一个字符串值,显示类似这样的内容(在一列中):

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)

但得到错误:字符串类型1维数组的值无法转换为字符串

2 个答案:

答案 0 :(得分:1)

这是一种语法问题。您错过了变量声明中的()。您也可以将空条目留在上面的示例中。您不需要为每个元素添加变量,只需将元素分配给文本框即可。

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

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

答案 1 :(得分:0)

基于@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),它给了我一个空值,因为该列实际上是空的