如何获取插入查询的ID?简单:
insert into Ex(sth) values("value");
select @@identity
不起作用。当我尝试ExecuteScalar或任何其他我得到异常时:{“解析查询时出错。[令牌行号= 3,令牌行偏移= 95,错误令牌=选择]”}。
我提醒这是CE版。我正在使用MSVS2010
感谢您的帮助。
答案 0 :(得分:1)
.Net SQL CE客户端不支持多个语句
您需要使用两个单独的SqlCeCommand
。
答案 1 :(得分:0)
TableAdapter(.NET 4)仅在命令执行后关闭连接,只有在命令执行之前关闭它。所以使用这样的东西:
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。