显示listview

时间:2015-10-17 13:47:02

标签: mysql asp.net vb.net listview

我正在尝试显示列表视图中的行数。我尝试了这个代码,但它没有工作,它会抛出下面的错误。我正在使用mysql作为后端:

错误:

  

System.InvalidCastException:从字符串"转换; '"输入   '双'无效。 ---> System.FormatException:输入字符串是   格式不正确

VB代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            ViewState("Data") = ""
            Using con As New MySqlConnection(constr)
                Using cmd As New MySqlCommand("SELECT * FROM school")
                    Using sda As New MySqlDataAdapter()
                        cmd.Connection = con
                        sda.SelectCommand = cmd
                        cmd.CommandTimeout = 0
                        Using dt As New DataTable()
                            sda.Fill(dt)
                            ViewState("Data") = dt
                            schoollists.DataSource = dt
                            schoollists.DataBind()

                        End Using
                    End Using
                End Using
            End Using

            countResult.Text = (" '" + schoollists.Items.Count + "';")

        Catch ex As Exception
            Response.Write(ex)
        End Try
    End Sub

1 个答案:

答案 0 :(得分:0)

在VB.NET中使用+ Operator连接一个字符串和一个数字会产生意外的结果(或者更好的例外,你可以看到)

在字符串和数字之间使用+会导致尝试将字符串" '"(在您的情况下)转换为数字,当然,这将失败。

为了安全起见,在VB.NET中连接字符串的正确运算符是& operator

countResult.Text = (" '" & schoollists.Items.Count & "';")

作为旁注,这将发生,因为您在项目设置中将OPTION STRICT设置为OFF。使用此配置,编译器无法捕获此问题,并且在运行时命中它之前无法看到错误。我强烈建议将OPTION STRICT设置为ON,如果最初你需要修复很多代码。

+ Operator on MSDN

的备注部分中提供了与数字和字符串一起使用时加号运算符行为的详细说明。