机房收费之数据库serial列

来源:互联网 发布:足彩预测软件app 编辑:程序博客网 时间:2024/05/22 10:30

在敲数据库的worklog表时发现有serial列,当时也不清楚有什么作用,只知道他是一个自增的类型数据。用IDENTITY(0,1)表示的,从0开始每次增加1。当我把时间插入到worklog表中的时候才知道他的作用。

这是worklog表的内容



这个表数据的添加就是当用户一启动机房收费这个程序就记录下login日期,时间;当一退出机房收费这个程序就记录下logout日期,时间。

其中还有一个获取计算机的名称:computername.text=Environ("USERNAME")

首先我在VB代码中写了MDIFORM_Load登陆时间记录,当我在MDIFORM_Unload中写结束时间记录的时候就遇到这样的问题,怎么选中这一行呢?用ID的话有很多重复的系统不知道是哪个没有结束时间,同理不能用level,时间日期肯定也不行,status也有相同项。我这时想到serial原来是这么用的啊!因为他是自增列所以不可能有重复项,但是我查了一下原来数据库中有重复项



这个重复项至今还不知道他是怎么弄上去的,看大神们的了。

于是我就用serial作为选择行的标识。

首先声明了一个整型变量d:Dim d As Integer

在unload事件中写下如下代码选择该行:

<strong><span style="font-size:18px;">txtSQL="select * from work_Info where serial='" & d & "'"</span></strong>

这样就选中了该行,然后就可以添加日期和时间了。

但是这时我发现数据库里面worklog表的serial列没有按照从小到大的顺序排列是乱乱的,原来的数据库也是一样乱序,而且还有重复现象,所以想删除重复项,但是会提示出错,通过世豪的提醒用DELETE的SQL语句删除了重复项。但是怎么让他按照顺序排列呢,通过韩林师哥和世超师傅的帮忙,知道了只要把重复项都删除后然后给serial添加一个主键就会自动排序,同时设置主键后就更不能插入重复行了,保证了数据的不重复性。




归根结底还是自己对数据库的了解少,对一些代码的使用还是不熟练,所以要更加认真的总结数据库的知识达到积水成河。加油!



1 0
原创粉丝点击