首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >身份: TableAdapter +@@SqlServerCE

身份: TableAdapter +@@SqlServerCE
EN

Stack Overflow用户
提问于 2010-10-19 08:18:11
回答 2查看 406关注 0票数 0

如何获取insert查询的id?简单:

代码语言:javascript
复制
insert into Ex(sth) values("value");
select @@identity

不起作用。当我尝试选择或任何其他错误时,我得到异常:{“分析查询时出错。令牌行号= 3,令牌行偏移量= 95,错误中的令牌= ExecuteScalar "}。

我提醒一下,这是CE版本。我正在使用MSVS2010

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-19 08:20:26

.Net SQL客户端不支持多个语句。

您需要使用两个单独的SqlCeCommand

票数 1
EN

Stack Overflow用户

发布于 2011-07-12 15:39:59

TableAdapter (.NET 4)仅在命令执行前关闭连接时,才会在命令执行后关闭连接。所以使用类似这样的东西:

代码语言:javascript
复制
try
            {
                if (_tasksAdapter.Connection.State != ConnectionState.Open)
                    _tasksAdapter.Connection.Open();

                _tasksAdapter.InsertNew(_partitionedFile.Uid, _partitionedFile.Checksum);
                _dbId = (int)_tasksAdapter.GetIdentity().Value;
            }
            finally
            {                    
                if (_tasksAdapter.Connection.State != ConnectionState.Closed)
                    _tasksAdapter.Connection.Close();
            }

其中方法InsertNew执行INSERT命令,GetIdentity()方法执行SELECT @@IDENTITY。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3964501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档