★ 向Access库中插入一条数据后,有什么方法可以返回这条数据的ID?

CBDup 2007-05-21 06:43:02
向Access库中插入一条数据后,有什么方法可以返回这条数据的ID?
...全文
1002 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcl1980 2007-05-24
  • 打赏
  • 举报
回复
我想问下,如果是个登陆注册。有两个或多个用户同时注册,写入数据库,他们也要相应返回各自的ID,那查表法就不行了,请问有什么好的方法吗?可以象APPLICATION中那样LOCK吗?
CBDup 2007-05-24
  • 打赏
  • 举报
回复
·谢谢楼上的提醒,你一说到的表格我就有创意了,我可以将查询结果统统装入DataTable中在用Select...的方法去DataTable操作,这样就不至于消耗资源了。
xiaozhimin1978 2007-05-23
  • 打赏
  • 举报
回复
我一般是用查表法:

创建一个表存存储所有表的最大 id,当要向一个表中插入一条记录时:
private static readonly Object Locker = new Object();
public static int GetCurrentID(string TableName){
lock(Locker){
int newid = 找到这个表当前ID
使这个表的最大ID加1
return newid;
}
}

这样,在插入之前就知道了新记录的ID值。不足之处是这种做法使每次插入数据时都要至少三次访问数据库。不过,我觉得这种消耗还不至于影响性能,因为一个数据库系统中表的数量应该不会太多,特别是 access 这样的数据库,有100个表已经算多的了,这样存储最新ID的这个表也就100来条记录而已,在这样少的表中查询或者更新都是很快的。
sunzhong2003 2007-05-23
  • 打赏
  • 举报
回复
你奶奶的,又是倒分贴
lovehongyun 2007-05-22
  • 打赏
  • 举报
回复
好像只能max()了
CBDup 2007-05-22
  • 打赏
  • 举报
回复
·向大家求助
sibyle 2007-05-22
  • 打赏
  • 举报
回复
关注一下~
apoclast 2007-05-22
  • 打赏
  • 举报
回复
估计会拿到亚值
sunzhong2003 2007-05-22
  • 打赏
  • 举报
回复
请问select max(id)会不会有并发问题
CBDup 2007-05-22
  • 打赏
  • 举报
回复
·mark,什么意思?装酷
Arieslns 2007-05-22
  • 打赏
  • 举报
回复
mark
CBDup 2007-05-22
  • 打赏
  • 举报
回复
string strCmd = "insert into Date(字段名1,字段名2) values('value','value') select max(id)"
---
int id = OleDbCommand(OleCon, strCmd)
------
·是不是这样写,id就可以返回当前插入数据的Id了?
hb_gx 2007-05-21
  • 打赏
  • 举报
回复
insert tablename values('','') select @@IDENTITY

这样写就可以返回你要的值啊

insert 本来是返回影响的行数,不过后面就selec就会返回你要的最大值了

传sql语句的时候其实是可以一次传多条的
分两次传浪费资源没什么意义
CBDup 2007-05-21
  • 打赏
  • 举报
回复
·谢谢你的关注。
ObjectOriented 2007-05-21
  • 打赏
  • 举报
回复
将表的id列设为自动递增,添加数据后,select此表的max(id)就可以了
CBDup 2007-05-21
  • 打赏
  • 举报
回复
·要是实在没有办法的话,我只能改变我的数据操作结构了,原以为是用SQL呢!唉~
phoenixsbk 2007-05-21
  • 打赏
  • 举报
回复
Access是不支持Batch Command和存储过程的,只能两次访问
CBDup 2007-05-21
  • 打赏
  • 举报
回复
·这个方法我早想到了,我的意思是在插入数据时返回ID,就像可以SQL里可以设置存储过程返回值一样。
phoenixsbk 2007-05-21
  • 打赏
  • 举报
回复
或者select @@IDENTITY from table
phoenixsbk 2007-05-21
  • 打赏
  • 举报
回复
再做一次查询"select top 1 [ID] from table order by [ID] desc"

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧