我尝试使用更新面板从动态创建的文本框中获取值。不断失败的一条是:
strName = DirectCast(pnlVars.Controls(strNameString), 文本框)的ToString
错误 System.FormatException:输入字符串的格式不正确。
strNameString变量是动态创建的,但是字符串链接为fwID。
这是整个循环。
For i = 0 To strArr.Count - 1
If i = 0 Then
qtype = " WHERE "
Else
qtype = " AND "
End If
strNameString = strArr(i).ToString().Replace("[", "fw").Replace("]", "")
strName = DirectCast(pnlVars.Controls(strNameString), TextBox).ToString
If strName <> "" Or strName <> Nothing Then
sb.Append(qtype & strArr(i).ToString() & " = '" & strName & "' ")
End If
Next
知道怎么解决这个问题吗?感谢
答案 0 :(得分:1)
在多行上尝试查看错误的位置
Dim tb As TextBox = DirectCast(pnlVars.Controls(strNameString), TextBox)
strName = tb.Text
如果错误在第一行,请查看strNameString中的值并确保其格式正确。
正如您所看到的,我没有使用ToString()这不会返回您想要的内容。你想要文本框中的文本。
确保strName是一个实际的字符串,而不是其他东西。在vb.net中,不建议在变量前加上类型。
如果是查询,请不要连接查询中的数据。使用参数!