主键重复问题???
我在sql数据库中
在vb中用datagrid绑定到记录集
在用addnew....update增加时,输入重复记录,报错记录重复。
此时在datagrid中已增加了这一条重复记录。
由于重复了,所以改了主键字段值再存(addnew...update)
时出错。此时退出整个程序了。
请问有什么办法在数据库判断重复之后,不退出程序下可以再存。
推荐阅读
一般主键设计成自增长的
在datagrid上不上用户编辑
这样增加一条记录,它自已就生成序号了,用户都不用管
而且根本不会出现重复记录
主键重复说明你的库结构不合理
捕捉数据库返回错误信息,判断后分别处理
用事务处理怎么样
public function chksame(byval adors as adodb.recordset, byval strfld as string ) as boolean
chksame = false
dim clors as new adodb.recordset
if adors.recordcount > 0 then
adors.movefirst
do while not adors.eof
set clors = adors.clone
clors.filter = "序號<>" & adors.fields("序號").value
if clors.recordcount <= 0 then exit function
clors.movefirst
clors.find strfld & "=" & adors.fields(strfld).value & ""
if not clors.eof then
chksame = true
exit function
end if
set clors = nothing
adors.movenext
loop
end if
end function
序號為自動增加的欄位


讨论区