朋友换一个软件,我帮他把以前的数据导到这个软件里,其实只有商品这个表,商品这个表里有一列id,不是标识列,是int型的,我用软件随便增加了两条,生成的两条id是1和2,我后面导的时候就从3算了,导了5000条,最大的id就是5002,格式也一样,导好后再用软件增加,结果提示主键重复了,因为软件只认得刚的那两条,这条该生成3,但导的时候3已经存在的,我一只以为软件是取的最大id+1,但其实不是,想问大家下,如果这个软件是你做的,那么这个id到底从哪取的?
补充一点,用软件增加,要增加成功后id才会加1,不像标识列一样不管成功与否都加1,我原本以为在数据库的某列有存着这个id,只须改了5002就行了,但没找到,表太多了
补充一点,用软件增加,要增加成功后id才会加1,不像标识列一样不管成功与否都加1,我原本以为在数据库的某列有存着这个id,只须改了5002就行了,但没找到,表太多了
解决方案 »
- 二次开发中控考勤机获取照片
- DataGridView 绑定Access 2007 数据库问题。
- 求助C#程序 如何修改个人信息问题!
- 关于SharePoint Designer 开发 工作流
- web service在嵌入式设备中被调用,使用的wince模拟器实现,但是在模拟器中出现了网络连接问题,请高手解决以下
- dgv控件的大难题啊,高手进来指点下
- sqldataadapter更新出错,急!
- 请问,dataGrid中,如何让某一行某一列获得输入焦点?
- 怎样读取xml两个相同节点的值
- 如何判断20个RadioButton的其中一个checked为true
- mysql c# MySql.Data.dll库存储图片问题
- 调试aspx页面的问题
是我的话,取max(id)的值,然后+1,再插入
还有,那列id的类型是自定义的类型
1、全局的临时变量:软件每次启动时查询表里的最大Id,然后保存。如果这样你软件重启之后就可以执行添加了。
2、保存到数据库了:每次执行添加时从表里取出当前最大Id,加1之后执行添加。添加成功在更新对应的Id记录。
我想软件应该是第二种做法。如果有源码,去源码里一看就可以知道了。如果没有,请楼主耐心找找,应该可以找到的