高难度动作:插入记录至表中后,如何能够马上取回该记录的ID号?

stevejobs 2003-06-25 09:53:02
高难度动作:插入记录至表中后,如何能够马上取回该记录的ID号?
请高人指点~~~
...全文
35 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevejobs 2003-06-25
  • 打赏
  • 举报
回复
噢,明白,将语句写在一起就行?
~
马上给分,谢谢小宝的老乡.~
哈,
lclking 2003-06-25
  • 打赏
  • 举报
回复
sql语句也可以直接用select @@identity,然后用executescale得到返回值,
或者用select max(id) from tablename 也可以的
cmsoft 2003-06-25
  • 打赏
  • 举报
回复
不是一样嘛

sqlStr="insert into table(name)values(@myname);select @@indentity as myId";
OleDbCommand cmd=new OleDbCommand(sqlStr,Conn);
……
OleDbDataReader dr=cmd.ExcuteReader();

dr["myId"]就是你要的
jeffrey_rui 2003-06-25
  • 打赏
  • 举报
回复
那你就select top 1 iid from your table where "你的判断条件用来检索刚才的插入"
order by inserttime desc
brightzh 2003-06-25
  • 打赏
  • 举报
回复
同意
在微软的duwamish或者是petshop中用这样的应用可以看一下
stevejobs 2003-06-25
  • 打赏
  • 举报
回复
哎,我也想用这种方法,但问题公司中设计的人没有想过用这个,人家规定都是用SQL语句操作库啦。

有过这样的经验吗?
mywebcn 2003-06-25
  • 打赏
  • 举报
回复
用存储过程就行了。set @@identity
lostinetdotcom 2003-06-25
  • 打赏
  • 举报
回复
..("insert......;select scope_identity()")

如果没有触发器或触发器没有建立新的其他记录:
则可以分开来写

..("insert......");
..("select @@identity");
forestyang 2003-06-25
  • 打赏
  • 举报
回复
上面错了,是

用存储过程,可以在insert后,select id=@@identity
forestyang 2003-06-25
  • 打赏
  • 举报
回复
用存储过程,可以在insert后,select id=@identity

62,072

社区成员

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

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

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

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