BGREX.BGREXDataTable _bRexDataTable = new BGREX.BGREXDataTable();
BGREX.BGREXRow bgRexRow = _bRexDataTable.NewBGREXRow();
bgRexRow.BGRes_TITLE = "abc";
bgRexRow.BGRes_VERSION = 123;
_bRexDataTable.AddBGREXRow(bgRexRow);
int rewEffected = Adapter.Update(_bRexDataTable);
使用上面的数据库插入记录,工作完善。现在我需要自动生成的新插入记录的id(主键),而不是从
返回受影响的行Adapter.Update(_bRexDataTable);
看起来我需要SCOPE_IDENTITY()函数,但我不确定在设计器中包含它的位置,因为设计人员对添加到实际插入查询的后续语法不满意。 尽管
,它在sqlserver管理控制台中运行良好DECLARE @ROWI_D int
INSERT INTO TABLE
.....
.....
.....
VALUES
("val1","val2",.......................)
SET ROW_ID = SCOPE_IDENTITY()
答案 0 :(得分:2)
我不确定如何使用带有命令的sql语句来执行此操作。我不是说它无法完成,我只是从不使用语句,总是通过sprocs。
通过使用存储过程,您可以定义一个输出参数,您可以在sproc中将其设置为SCOPE_IDENTITY()
,然后确保将该参数传递给命令,同时将其设置为输出方向。
抱歉,我没有直接sql调用的解决方案,但也许其他有这种方式工作经验的人会参与其中。
这是一个link到一个讨论同一主题和可能答案的线程。但是没有验证建议的解决方案是否有效。
答案 1 :(得分:1)
执行此操作的最佳方法是更改为在参数中返回所需值的存储过程。发布您现在进行更新的代码,我(或其他人)将向您展示如何重构它以使用存储过程。这并不难。