|
主题: 虚心请求帮助(关于数据库的问题)
|
 xtbr
职务:普通成员
等级:1
金币:0.0
发贴:20
注册:2003/2/25 14:05:26
|
#12003/10/11 10:18:34
虚心请求帮助(关于数据库的问题) 昨天在网站后台的会员列表中,突然发现多了几十个空白的。ID序号是自动编号。从478起一直到519为止全是空白。我就在后台管理程序上直接把这些空白删除。后来我自己注册一个会员测试。发现ID序号跳到了520,我删除后。又注册一下,发现ID序号跳到了521。我把mdb数据库文件下载到本地,打开后,想更改ID号,但行不通,ACCESS提示“控件无法编辑,它已自动绑定到自动编号字段"id" 我在数据库里直接添加了一个记录,再删除,再添加时,ID序号又跳过了一个。 为什么记录删除了,可当初的ID序号却一直保留着?521删除了,加上一个记录ID序号成了522,把522这个记录删除了,再加上一个记录时,ID序号并不是522,而是523. 大家帮忙教一下我,怎么才去id序号的顺序恢复回正常。 我从来没有接触过ASP和数据库,一直都做美工的,这个网站是公司先前做网站的留下的。BUG很多,但我又不知道怎么修改。在很用心学了。从没接触过程序。希望大家能帮帮我,指点一下。谢谢! 
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
|
#22003/10/11 10:25:13
这就是自动编号的特性,ID即使删除了也永久保留,你以后会逐渐体会到它的好处的 ;)
如果想重新编号,可按下面的方法做(如果操作没有把握,请先自行备份MDB文件): 到表设计中去,删掉ID字段,然后添加ID字段,并设置为自动编号,主键,保存后,所有编号将全部连续地重排一次。
|
 xtbr
职务:普通成员
等级:1
金币:0.0
发贴:20
注册:2003/2/25 14:05:26
|
#32003/10/11 10:45:07
真的太谢谢您。按您的方法,我改好了。
初学者真的很感动。
|
 xtbr
职务:普通成员
等级:1
金币:0.0
发贴:20
注册:2003/2/25 14:05:26
|
#42003/10/11 10:50:29
我再请教一下。数据库里为什么会出现这个问题(突然多了几十个空白地记录)大概是什么原因引起的。
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
|
#52003/10/11 10:54:05
有两种可能:
这此记录被删除过 有时候 insert 失败会出现这种情况——试图向表里添加记录,因为程序错误而没有成功,但ID号却被占用了,所以猜测你是在调试时多次 insert 无果而造成的。
|
 xtbr
职务:普通成员
等级:1
金币:0.0
发贴:20
注册:2003/2/25 14:05:26
|
#62003/10/11 11:07:46
我先前没有进行为任何调试和添加记录,偶然在查看后台会员注册情况时,发现多出这么多空白的记录。接着就直接在后台管理程序上进行删除(如你第一点分析)。
我不解的是为什么在我没有进行任何动作,却突然多出空白记录
是否存在会员注册时,多次无效。而产生了空白记录?其实这也像您所分析的第二点. 如果是这样,是否是程序有BUG,那主要出现在哪个模块。如何去找出并修改(能给我一点思路吗)
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
|
#72003/10/11 11:11:09
问题就是在插入数据的那段代码,你有没有检测数据是否为空,如果为空是否就中断了insert的操作?
|
 xtbr
职务:普通成员
等级:1
金币:0.0
发贴:20
注册:2003/2/25 14:05:26
|
#82003/10/11 11:15:25
我学ASP才四天,做程序真的有点吃力,不知道从哪下手。
谢谢大家这么热心帮助我。
我现在去找一下哪里才是插入数据的代码。有疑问再上来请教
;) ;)
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
|
#92003/10/11 11:17:47
如果程序中有 On Error Resume Next, 把它注释掉,除非对程序有把握,否则不要用这个语句,它会掩盖运行时错误。
仔细检查输入字段,有没有漏洞,凡是由用户输入的字段,都要考虑非法输入的处理情况(任何有意或无意的)。
另外,可以在插入记录之前先打印 sql 语句,检查语句有没有问题。
|
 icerain
职务:普通成员
等级:1
金币:1.0
发贴:249
注册:2003/6/13 3:09:56
|
#102003/10/14 4:47:22
我估计80%是程序员的大意。 上传数据的程序中没有判断数据为空的时候出错提示 差不多这个程序是不管37二十一就是上传写入数据库~
|