
小弟在做更换卡片的操作
如图 每行记录为一张卡片的信息。现在要做的是,挂失卡之后 如何只换掉卡片的内码,而该卡的其他信息不变,挂失操作就是更改卡片状态(已实现),但是如何用新的卡片号来替换掉旧的卡片号。由于卡片号是主键,想不出怎么办了 各位大神 帮忙给给思路 !谢谢大家
------解决思路----------------------
个人认为不应该更新内码,挂失的卡片和新的卡片是不同的事物,你要做的并不是更新内码,而是在新的内码那条记录中把挂失的卡片的其他信息做一个复制,如果一定要让挂失的卡片不存在,可以做删除,最好记录好日志以便今后追述
------解决思路----------------------
取出丢失的卡的数据---修改数据内容---插入新的数据---成功之后删除旧数据
------解决思路----------------------
有数据库直接可以用sql语句进行数据复制,如果能在程序做可以遍历grid或者数据集合来复制
------解决思路----------------------
从你表中可以获得已知的字段
内码 类型 开始 结束 状态
从描述还有一个卡号,而且你把它设为了主键对吧
修改的方法,主要是从你的数据源里取出数据修改
楼主你都能更改状态了为什么不会这个呢?
------解决思路----------------------
加一个GUID作主键,内码列加唯一索引就行了(如果实在要作主键,就成联合主键了)
然后再加一张挂失纪录,里面有GUID,原卡号,新卡号,时间==方便查询
------解决思路----------------------
更正:IF new_ID_Card在库里不存在 OR (new_ID_Card在库里已经存在 AND new_ID_Card==old_ID_Card) THEN
update table set 卡号=new_ID_Card where 卡号=old_ID_Card
END IF
我写的是伪码,表达思路。也可以指定新的主键,例如guid,int自增,组合键,关键用一个没有实际意义的字段,你的卡号,是卡的身份证,而guid是一串128位的字串,对你的程序没有影响,方便操作
------解决思路----------------------
这是业务问题。这个问题如果没有经过业务部门白纸黑字的文字公告,作为程序员,绝不能胡乱想当然地搞。