zoukankan      html  css  js  c++  java
  • [置顶] 学生信息管理系统“重复设置”问题

       在做学生管理系统的时候,在设置年级课程信息的窗体中,每点击“设置课程”键,就会重复添加一次,不管该课程是否存在。而添加键也是存在这样的问题。这个问题该怎样解决?

       就这个问题,我从listbox的属性入手,不要求里listbox的属性都要求你都知道。最起码这个用到的都要知道。在这里我觉得就像米老师说的,在我们学习vb入门的时候,我们不必所有的都弄懂,所有的都记住。我们只有知道有这样的一个类,它叫listbox,当我们遇到它的时候,查就可以了。毕竟,百度比我们的记忆好的多,知道的多。

       要解决这个问题,listbox的additem、removeitem方法要了解,listindex和listcount属性必须知道。

       简单一点说:additem是将项添加到列表框中的。

                 removeitem是将项从列表框中删除的。

                listindex返回的是列表框list中当前选择项目的索引号码。

                listcount返回的是列表框list中项目总数。

       知道了这些,那么就看代码很清楚了:

     

    Private Sub cmdSet_Click()                                      '“设置课程”按钮
        Dim mrc As ADODB.Recordset
        Dim txtSQL As String
        Dim MsgText As String
                                                                    '使控件有效
        listAllcourse.Enabled = True
        listSelectcourse.Enabled = True
        cmdModify.Enabled = True
        
        txtSQL = "select * from course_Info "
        Set mrc = ExecuteSQL(txtSQL, MsgText)
                                                                    '显示所有课程
        While (mrc.EOF = False)                                     '遍历记录方法2
            listAllcourse.AddItem mrc.Fields(1)
            mrc.MoveNext
        Wend
        mrc.Close
        
        flagSet = True
    End Sub


      这段代码的运行结果是:

     

      那么我们要修改它,就要从while wend 段中修改,具体方法:

    While (mrc.EOF = False)                                    '遍历记录方法2
            If listAllcourse.ListCount <> mrc.RecordCount Then
            listAllcourse.AddItem mrc.Fields(1)
            End If
            mrc.MoveNext
    Wend
    mrc.Close
    
     
    


     

      
      另外,还有添加键的设置,原代码是这样的:

    Private Sub cmdAdd_Click()
        If listAllcourse.ListIndex <> -1 Then
            listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex)
        End If
    End Sub


       运行结果:

     

      改过之后是这样的:

     

    Private Sub cmdAdd_Click()
        Dim I As Integer
        
        If listAllcourse.ListIndex <> -1 Then
            
           If listSelectcourse.ListCount = 0 Then
                 listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex)
           End If
            
            For I = 0 To listSelectcourse.ListCount - 1
                If listSelectcourse.List(I) = listAllcourse.List(listAllcourse.ListIndex) Then
                    Exit Sub
                End If
            Next
                listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex)
            
        End If
    End Sub


      里面涉及到一些逻辑问题,可以用F8键,进行调试,这样,你就知道,你的哪一步错了。

      我个人认为:改正这个错误,不单单是锻炼我们调试能力和对list类的认识,更重要的是我们的一种学习习惯问题,道理就是在我们学习vb入门的时候,我们不必所有的都弄懂,所有的都记住。我们只有知道有这样的一个类,它叫listbox,当我们遇到它的时候,查就可以了。毕竟,百度比我们的记忆好的多,知道的多。

              

      

  • 相关阅读:
    JS魔法堂:阻止元素被选中
    JS魔法堂之实战:纯前端的图片预览
    CentOS6.5菜鸟之旅:纯转载Linux目录结构
    Vim杂记:Sublime的配色方案
    Vim杂记:markdown插件
    CentOS6.5菜鸟之旅:中文编辑器忍痛放弃Sublime
    JS魔法堂:Data URI Scheme介绍
    CentOS6.5菜鸟之旅:安装ATI显卡驱动
    JS魔法堂:获取当前脚本文件的绝对路径
    腊八蒜
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3268590.html
Copyright © 2011-2022 走看看