CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

刚插入的新记录如何得到它的ID号(数据库自动生成的)???????

楼主vivasoft(蓝白领)2004-12-04 11:36:32 在 VB / 基础类 提问

表有两个字段:  
  [table1].nID  
  [table1].strName  
  ========================================  
    Dim   InsertCmd   As   String  
    Dim   nIndex   As   Integer  
   
          InsertCmd   =   "INSERT   table1   (strName)   VALUES('"   &   text_box.text   &   _  
                  "');"&   _  
                  "SELECT   nIDFROM   table1   WHERE   (nID=@@IDENTITY)"  
   
          Dim   rs   As   New   ADODB.Recordset  
          Set   rs   =   GModule.GetRecordset(InsertCmd,   adLockOptimistic)   '已封装的Recordset,这里没问题  
   
          nIndex   =   rs.Fields("nID").Value  
          '我调试过了,rs在这里时已经全部关闭,不能执行上一行了。  
  ========================================  
  请问大哥哥们,有好的方法吗????  
  先谢谢了!!!!!!!!!!!!!!!!!!!!!1 问题点数:20、回复次数:15Top

1 楼ziyantan(gdsspt.com)回复于 2004-12-04 11:41:57 得分 14

插完后读出来就行了。  
  再建一个对象咯Top

2 楼vivasoft(蓝白领)回复于 2004-12-04 11:56:05 得分 0

那样是不行的,我要得到刚插入的那条记录,只显示它(不显示全部的)Top

3 楼vivasoft(蓝白领)回复于 2004-12-04 12:01:23 得分 0

怎么没有人来啊Top

4 楼ziyantan(gdsspt.com)回复于 2004-12-04 12:05:11 得分 0

最后一条记录啊。  
  怎么不行。  
   
  把游标移到最后。Top

5 楼ziyantan(gdsspt.com)回复于 2004-12-04 12:06:20 得分 0

再不读出ID最大那个值Top

6 楼vivasoft(蓝白领)回复于 2004-12-04 12:09:06 得分 0

这样不是很可靠啊,如果还有一个人在其它的机子上插入呢,正好插在此记录的下一条呢!  
  那怎么办?  
   
  在.net中用这种方法是可以的,我试过了Top

7 楼ziyantan(gdsspt.com)回复于 2004-12-04 12:13:13 得分 0

你插入的记录有个标签  
  如:时间和名称或者其他  
  Dim   a   As   String    
  a   =   你插入的时间和名称  
  Set   Rs   =   Conn.ExeCute("Select   id   From   biao   Where   标签=   a")  
  Rs("id")  
  这样不就行了  
  Top

8 楼vivasoft(蓝白领)回复于 2004-12-04 12:21:16 得分 0

ziyantan(子言)   兄弟!  
  “标签”是什么,能详细一点,如果是其中的字段那也不是唯的一,是不行的  
   
  我在这个表里是不能修改它的字段的  
  Top

9 楼ziyantan(gdsspt.com)回复于 2004-12-04 12:24:54 得分 0

句是能唯一查讯的东西。Top

10 楼creazyfish(梳分头的鱼)回复于 2004-12-04 12:52:12 得分 2

这个很难办呀呵呵Top

11 楼aohan(aohan)回复于 2004-12-04 16:17:36 得分 2

如果是Sql   SERVER   并且表中标识符,那么其中有一个常数  
   
   
  @@IDENTITY  
   
   
  每次插入数据完成后,SQL   SERVER   都会返回该值,如果是多条记录则返回最后一条值,你用  
   
  select     @@IDENTITY     就可以取到Top

12 楼strongfisher(Haiwolf)回复于 2004-12-04 16:27:31 得分 1

s   =   "select   max(Id)   as   NumberId   from   "   &   sTbl   &   "     sName   &   "'"  
        Set   rsWoNumber   =   cnnCMMS.Execute(s)Top

13 楼daisy8675(莫依 沉迷)回复于 2004-12-05 02:29:48 得分 0

SQL   有标识,access只能取max数值Top

14 楼yenight(抵制日货 利国利民 能不买日货,尽量不买)回复于 2004-12-05 15:39:56 得分 1

ACCESS中用DAO不要用Insert这个语句,用DAO.Addnew这个方法,后移动到最后一个修改的记录,最后再读出不就OK了。如果用ADO的话,也可以用类似的方法得到!你找一找,   以前偶回过一个这样的贴子!Top

15 楼vivasoft(蓝白领)回复于 2004-12-07 14:11:01 得分 0

非常感谢大家,我已经解决这个问题了!Top

相关问题

  • 数组生成数据库记录
  • access数据库插入记录
  • 如何插入数据库记录?
  • 数据库无法插入记录记录
  • 关于数据库记录 生成树的问题
  • 关于随机生成数据库中记录id的问题
  • 数据库里面记录如何 生成脚本
  • 如何向数据库插入中文记录?
  • 提问:怎样在数据库中插入新的记录?
  • 如何提取刚刚插入到数据库记录的id

关键词

  • 字段
  • sql
  • 插入
  • 记录
  • insertcmd
  • 标签
  • 得到
  • nid
  • 不行
  • rs

得分解答快速导航

  • 帖主:vivasoft
  • ziyantan
  • creazyfish
  • aohan
  • strongfisher
  • yenight

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo