我的数据库中有一个字符串值,显示类似这样的内容(在一列中):
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维数组的值无法转换为字符串
答案 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),它给了我一个空值,因为该列实际上是空的