zoukankan      html  css  js  c++  java
  • 【学生信息管理系统 2】:无法实现信息的添加

    近期遇到的一个问题就是无法实现信息的添加了,可是程序又总是提示添加成功,根本不报任何错。


    对于这个问题,做了总结。
    一个问题的解决,首先得理清它所在功能块的运行步骤,这样才能逐一排除。比如说添加信息:首先,打开数据库,指明添加的位置;其次,写入命令添加信息;然后,进行数据的更新;最后,操作执行完毕,关闭数据库。

    我总以为,包括师傅开始也认为是我的添加命令写错了。在反复求证后,确认添加命令没有错,从这儿,我和师傅的差距就出来了,我们同样用了断点调试,可是我始终没有看出来哪一步有问题,而师傅看了一会儿,说我肯定是调用的那个函数写错了。

    由这个问题,我理出了一条解决问题的思路:
    一、理清功能块运行的步骤,逐一排除;二、查看是否存在语法错误;三、查看是否有调用函数;四、核实函数是否正确书写。

    借由这个问题说一下我对调用模块中一个函数的理解,因为多次用到。


    Public Function executesql(ByVal sql As String, msgstring As String) As ADODB.Recordset‘'传递参数SQL传递查询语句,MsgString传递查询信息。自身以一个数据集对象的形式返回 

        Dim cnn As ADODB.Connection’定义连接
        Dim rst As ADODB.Recordset‘定义数据集
        Dim stokens() As String’定义字符串

        On Error GoTo executesql_error‘进行错误处理

        stokens = Split(sql)'用Split函数产生一个包含各个子串的数组    关于Split函数
        Set cnn = New ADODB.Connection'创建连接 
        cnn.Open connectstring’进行连接   其中connectstring函数返回了数据源

        If InStr("INSERT,DELETE,UPDATE", UCase$(stokens(0))) Then '非Select语句 判断是否含有指定内容

            cnn.Execute sql ‘执行查询语句
            msgstring = stokens(0) & " query successful "’返回查询信息
            '虽然msgstring不是返回值,但传递方式是ByRef,是参地址和这个地址相同

        Else

            Set rst = New ADODB.Recordset‘创建数据集对象
            rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic’返回查询结果,这一句也是我的问题所在。
            '得到临时表,游标指向第一条记录
            'get recordcount
            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

    End Function

    针对我出问题的具体解决情况进行说明


    本该是adLockOptimistic非让我给写成了adLockBatchOptimistic。 关于aslockoptimistic


    这二者的区别:adLockOptimistic   当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。    
     adLockBatchOptimistic   当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。

     


  • 相关阅读:
    Spiral Matrix II
    N-Queens
    Jump Game II
    js改变div高度
    Jenkins + testNg + maven 项目持续集成
    bootstrap做的导航
    bootstrap左侧边栏
    WEB-INF下jsp跳转
    jsp页面无法解析EL表达式
    springMVC和mybatis整合,jsp对时间进行格式化
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010488.html
Copyright © 2011-2022 走看看