学生信息管理系统——设计实现

规划

俗话说"不谋万世者,不足谋一时;不谋全局者,不足谋一域"。不能长远地考虑问题的人,眼前的问题他也看不到;不能全面地把握局势的人,在细节上他也处理不好。所以在具体的实现之前,我们必须要将“全局”做好,也就是对系统的把控。知道系统是什么?、做什么?、大概怎么做?。

首先对系统的大体框架进行划分:

可以看出分为:数据库和vb6中编程2部分,所以我把大体的工作分为3大步

1.数据库设计

2.数据库与vb交互(配置ODBC数据源)

3.vb6中具体编程

实现

数据库:数据库的实现主要是两部分语句创建数据库和创建表

创建数据库:

CREATE DATABASE Student_Info;

创建表:

CREATE TABLE `students` 
(                            
 `id` bigint(20) NOT NULL AUTO_INCREMENT,     
`class_id` bigint(20) NOT NULL,                   
`name` varchar(100) NOT NULL,                      
`gender` varchar(1) NOT NULL,                       
`score` int(11) NOT NULL,                           
PRIMARY KEY (`id`)                                  
) 
ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 

vb6下具体编程:信息管理系统嘛,肯定以增删改查为主体思路,也就是在vb环境下对数据的操作。

对数据库数据的操作,那必然是需要建立在连接好数据库的情况下,再进行增删改查

1.连接(由于多个窗体需要多次访问,所以我将部分重复性很高的代码写到了公共模块方便复用)

a.连接文件DSN,分为本地和异地

Public Function ConnectString() As String
    '本机发布
    'ConnectString = "FileDSN=Student.dsn;UID=sa;PWD=1"    
    '异地发布
    ConnectString = "Provider=sqloledb;server=192.168.138.1;UID=sa;PWD=1;database=Student"
End Function

b.抽象出的查询语句

Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
    
    Dim cnn As ADODB.Connection '定义链接
    Dim rst As ADODB.Recordset
    Dim sTokens() As String '定义字符串

On Error GoTo ExecuteSQL_Error

    sTokens = Split(SQL) '产生包含子串数组
    
    Set cnn = New ADODB.Connection  '创建连接
    cnn.Open ConnectString          '打开连接
'判断字符串中是否含有指定内容
    If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
        cnn.Execute SQL    '执行查询语句
        MsgString = sTokens(0) & " query successsful"    '返回查询信息
    Else
        Set rst = New ADODB.Recordset    '创建数据集对象
        '返回查询结果
        rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
        Set ExecuteSQL = rst
        MsgString = "查询到" & rst.RecordCount & "条记录"
    End If

ExecuteSQL_Exit:

    Set rst = Nothing    '清空数据集对象
    Set cnn = Nothing    '中断连接
    Exit Function

'错误类型判断
ExecuteSQL_Error:
    MsgString = "查询错误" & Err.Description
    Resume ExecuteSQL_Exit
    '在Visual Basic中,为了避免程序代码出错而终止程序
    '一般在无法确定出错原因的情况下采用
    'On Error Resume Next
    '表示出错时自动跳转至下一行代码
    
End Function

2.各功能模块中的增删改查

将数据库中内容添加到窗体上

    txtSQL = "select * from class_info"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    '添加内容到列表框中
    For i = 1 To mrc.RecordCount
        comboClassNo.AddItem mrc.Fields(0)
        comboClassNo.ListIndex = 0
        mrc.MoveNext
    Next i

    mrc.Close    '关闭数据集对象

窗体中内容写入到数据库内

    mrc.AddNew    '给每个字段赋值
    
    mrc.Fields(0) = Trim(txtSID.Text)
    mrc.Fields(1) = Trim(txtName.Text)
    ...

    mrc.Update    '更新数据库
    mrc.Close    '关闭数据集对象

组合查询语句

    If dd(2) = True
       If dd(0) Or dd(1) Then
        '组合查询语句
            txtSQL = txtSQL & "and class_NO ='" & txtClassno.Text & "'"
        Else
            txtSQL = txtSQL & "class_NO ='" & txtClassno.Text & "'"
        End If
    End If
发布了40 篇原创文章 · 获赞 10 · 访问量 7134

猜你喜欢

转载自blog.csdn.net/xyzyhs/article/details/99884935