红皮书验收总结

通过学习红皮书,对数据库的理解又加深了一点。前三个实例可以说是讲了3种连接数据库的方法:

实例1:

 

实例2:建立ODBC数据源 用ADO访问数据库

实例3:使用ADO Data控件 绑定数据库

 

实例4验收的过程中出现了问题,如下:

一开始我是懵逼的,自己运行的时候没什么错误啊。记得错误发生时师父在文本框中输入了10,要查询10条记录。首先看这个错误的描述,说的是“BOF或EOF中有一个是‘真’,或者当前记录已被删除,所需的操作需要一个当前的记录”,说明此时里面是没有数据的。但是我觉得肯定没有删除记录的操作,所以不是这个原因;那再回头看第一个原因,这个我是不太懂的,然后回去看书,发现:

BOF属性:如果当前的记录位置在第一条记录之前,则返回 true,否则返回 fasle。

EOF 属性:如果当前记录的位置在最后的记录之后,则返回 true,否则返回 fasle。

错误显示其中有一个是“真”,当时师傅点击的是下一页,那么就是说当前的位置就是最后的记录之后,这说明下一页没有数据所以显示不了。为什么会这样呢?原来是因为我的数据库中就只有8条记录,难怪要显示10条点击下一页时显示不出来。这是我的一种最简单的解决办法,但是后来上网查的时候发现并不是如此简单,现在想想如果数据库真的只有8条记录,那该怎么办?从CSDN上查了些资料,大体上有两种解决办法:

第一种:进行错误处理,当遇到此错误(3021)时,可以跳过该错误,直接进行下一步。

 

第二种:根据上述原理,那么我们可以将代码稍作修改,不做错误处理,而是当程序运行的错误考虑在内,当遇到这种情况时,用一个if语句,让程序直接进行下一步即可,与上述方法异曲同工!

 

最后师傅在细节上提醒了我不少东西。首先就是格式问题,学了这么久的VB,写代码的时候格式还是不太整齐,有些不美观啊;然后是实例2中当显示是最后一条记录时,师傅要求再次点击下一条时可以显示第一条记录,这个并不难,加一个判断即可:

 

然后扩展一下,从最后一页可以再跳到第一页,与之前的是差不多的,加个判断就能循环显示:

本来我是没有敲红框里的两行代码,但是我发现这样子的话,第一页和最后一页的数据是显示不出来的,只好又给加上了。

 

还有在实例4中按课本上的代码写,最后查询出来的数据会显示一条空行,方法很简单,只需令MSFlexGrid.Rows=1就可以了。实例5中, 最好加一个条件判断,判断输入的用户名和身份是否为空:

还有一些基础的问题:

VB中Option Explicit:一般在模块级别中使用,且必须写在模块的所有过程之前,强制显式声明模块中的所有变量。它的作用是:声明所有变量都需要先定义才能使用,否则程序在使用了未经定义的变量时就会报错,这样,可以避免变量因名称拼写等错误带来的结果错误,并且“Option Explicit”可以加快程序的运行速度,它节省了在程序运行时动态分配变量存储空间的时间。

Dosave的意思是保存对之前的修改。

使运行后文本框内容不能随意改动:

username.Enabled = False,

password.Enabled = False。

控件随窗体一起等比例扩大缩小,这个思路是在form的load和resize事件里设置每个控件的长宽,都用form1的长宽表示,比如command1.width=1/20*me.width 这样当当窗体宽度改变后按钮的宽度始终是它高度的1/20。

感叹号  用于强制从左至右而不是从右至左填充占位符。必须在任何格式字符串的开头使用此字符。

百分号  %表示可匹配任意类型和长度的字符,如果是中文,可以使用两个百分号即%%。

 

猜你喜欢

转载自blog.csdn.net/qq_39071599/article/details/85599775
今日推荐