用asp取 @@IDENTITY 值出错!

ppxstar 2003-05-07 11:25:32
语句内容
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三') SELECT @@IDENTITY AS 'userid'"
Set Rs=Conn.execute(sql)
userid=rs("userid")'此处出错

出错提示
错误类型:
ADODB.Recordset (0x800A0CC1)

其它情况
数据已经正确插入到数据库里

请问是怎么回事呀
...全文
42 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppxstar 2003-05-08
  • 打赏
  • 举报
回复
CrazyFor(蚂蚁) 我试过不行
dapper(太阳雪) 那就不能在插入的同时取出值了,没有其它方法了吗?
blactte 2003-05-08
  • 打赏
  • 举报
回复
Sql="INTO datbaseinfo(username) VALUES ('张三') go SELECT @@IDENTITY as userid"
sql server两条语句之间需要写go
当作一个批处理来完成
ttyp 2003-05-08
  • 打赏
  • 举报
回复
前面加上set nocount on;看看
Sql="set nocount on;INSERT INTO datbaseinfo(username) VALUES ('张三'); SELECT @@IDENTITY as userid"
dapper 2003-05-07
  • 打赏
  • 举报
回复
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三') SELECT @@IDENTITY AS 'userid'"
Set Rs=Conn.execute(sql)
userid=rs("userid")'此处出错

insert 语句是无返回结果的sql, userid=rs("userid") 当然去不到值了。在你写的句子中SELECT @@IDENTITY AS 'userid' 是作为一个值 使用了,所以结果是对的。而最终conn执行的是一个insert ,所以不会有返回记录集。
CrazyFor 2003-05-07
  • 打赏
  • 举报
回复
TRY:
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三'); SELECT @@IDENTITY as userid"
Set Rs=Conn.execute(sql)
userid=rs("userid")'此处出错
ppxstar 2003-05-07
  • 打赏
  • 举报
回复
再说,这样的话那我还不如这样写
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三')"
Set Rs=Conn.execute(sql)

Sql="SELECT top 1 id datbaseinfo order by id desc"
Set Rs=Conn.execute(sql)
userid=rs("id")

我就是不想多打开记录集

ppxstar 2003-05-07
  • 打赏
  • 举报
回复
试了,执行正确,但取到的值为空,不是正确的取值
mjhnet 2003-05-07
  • 打赏
  • 举报
回复
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三')"
Set Rs=Conn.execute(sql)

Sql="SELECT @@IDENTITY AS 'userid'"
Set Rs=Conn.execute(sql)
userid=rs("userid")

这样试试
ppxstar 2003-05-07
  • 打赏
  • 举报
回复
急用,在线等待!
转自:http://www.yongfa365.com/item/ASP.net-Forms-Demo.html 如果您研究过这个问题,那么,你一定会比较郁闷,现在网上流行的那个,国产的,里面有点问题,反正我一从昨天研究到现在 2008年12月17日 23时59分10秒,才搞明白是怎么回事,你说我们这些人容易吗!如果只是为了完成任务,我用ASP就OK了,为什么还要用ASP.net,如果我们用.net时还用ASP的思路也得了,为什么还要研究ASP.net提供的东西。呵呵,不为什么,喜欢,我所做的正是我想做的,我不是为了完成一个任务,而是为了提升自己。总之一句话:我的目标是简化生活,技术高了,就不怕出错了,天塌下来也能给他顶回去。 言归正传,首先,贴上人家外国人的地址:http://www.codeproject.com/KB/web-security/formsroleauth.aspx 有兴趣的可以看看,没兴趣的直接下我的Demo,有点兴趣的可以看下国人处理时有问题的地方: Global.asax protected void Application_AuthenticateRequest(Object sender, EventArgs e) { if (HttpContext.Current.User != null)//如果当前的http信息中存在用户信息 { if (HttpContext.Current.User.Identity.IsAuthenticated)//如果当前用户的身份已经通过了验证 { if (HttpContext.Current.User.Identity is FormsIdentity) { //如果当前用户身份是FormsIdentity类即窗体验证类,此类有个属性能够访问当前用户的验证票 FormsIdentity fi = (FormsIdentity)HttpContext.Current.User.Identity;//创建个FormsIdentity类,用他来访问当前用户的验证票 //获得用户的验证票 FormsAuthenticationTicket ticket = fi.Ticket; //从验证票中获得用户数据也就是角色数据 string userData = ticket.UserData; //把用户数据用,分解成角色数组 string[] roles = userData.Split(','); //重写当前用户信息,就是把角色信息也加入到用户信息中 HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(fi, roles); } } } } 最后,贴上国人的地址,其实文章写的不错,只是这个事件没写对,其它的都不错,地址是:Asp.net中基于Forms验证的角色验证授权

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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