0

我在 SQL CE 中使用数据适配器/集,我确实创建了以下查询以插入到表中,然后选择 @@IDENTITY,我希望这个 SELECT 语句在每次插入表后返回我的学生 ID,这是我的查询:

INSERT INTO [Student] ([Name], [Family], [Address], [Phonenumber])
VALUES(@Name,@Family,@Address,@Phonenumber);
SELECT  @@IDENTITY;

这是我如何调用查询:

int x = da.Insert("Albert", "Alexandra", "No4.Oxford", Telnum);

Int x 假设返回我的 ID...

这是我得到的错误:

解析查询时出错。[令牌行号= 4,令牌行偏移量= 1,错误令牌= SELECT]

插入查询它自己它可以工作,但是一旦SELECT @@ IDENTITY在最后添加我得到错误。

我真的不知道我做错了什么。

4

3 回答 3

1

ExecuteNonQuery的返回值将是这些查询影响的行数。所以你需要使用存储过程而不是单查询。

于 2013-01-21T11:10:29.517 回答
0

根据MSDN,CE 不支持每次执行多个命令,您需要将其作为两个命令同步执行。

于 2013-01-21T00:45:03.780 回答
0

如果您想在单个调用中执行此操作,则需要使用存储过程而不是 Insert,因为它使用ExecuteNonQuery,它不返回任何记录。否则,您需要在另一个调用中执行选择以确定身份。

ExecuteNonQuery的返回值是一个整数,表示受您的调用影响的行数。

于 2013-01-21T00:45:45.340 回答