我想写一个菜单的代码,是用递归的方式的,其中kparentid是指父菜单的id,classid是菜单项的id号,child是指所包含子菜单的数量,请教高手给点修改的意见
Public Function SetLeftMenu(Optional ByVal id As Int16 = 0) As String
        Dim i As Int16
        Dim htmlstr As String = "<table>"
        Dim datareader1 As SqlDataReader
        If sqlConn.State = ConnectionState.Open Then sqlConn.Close()
        sqlConn.Open()
        sqlComm.CommandText = "SELECT * FROM Tb_menu where kparentid=" & id
        datareader1 = sqlComm.ExecuteReader
        If datareader1.HasRows = False Then      '查询无记录则提示出错信息
            datareader1.Close()
            sqlConn.Close()
            Exit Function
        End If
        While datareader1.Read
            htmlstr = htmlstr & "<tr><td>" & datareader1.Item("menuname") & "</td></tr>"
            If datareader1.Item("child") = 0 Then Exit While
            SetLeftMenu(datareader1.Item("Classid"))
        End While        htmlstr = htmlstr & "</table>"
        datareader1.Close()
        sqlConn.Close()
        Return htmlstr
    End Function