asp.net vb Directcast错误

时间:2017-09-14 15:12:31

标签: asp.net vb.net

我尝试使用更新面板从动态创建的文本框中获取值。不断失败的一条是:

  

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

知道怎么解决这个问题吗?感谢

1 个答案:

答案 0 :(得分:1)

在多行上尝试查看错误的位置

   Dim tb As TextBox = DirectCast(pnlVars.Controls(strNameString), TextBox)
   strName = tb.Text

如果错误在第一行,请查看strNameString中的值并确保其格式正确。

正如您所看到的,我没有使用ToString()这不会返回您想要的内容。你想要文本框中的文本。

确保strName是一个实际的字符串,而不是其他东西。在vb.net中,不建议在变量前加上类型。

如果是查询,请不要连接查询中的数据。使用参数!