SQL Server命令生成器和自动递增ID

SQL Server命令生成器和自动递增ID,sql,sql-server,vb.net,ado.net,Sql,Sql Server,Vb.net,Ado.net,我有一个SQL Server数据库,我正在将其拉入数据集中进行更改,但是,当我使用SqlDataAdapter更新任何特定表时,它不会以SQL使用的相同值启动ID键 我正在使用带有SqlDataAdapter的SqlCommandBuilder。我在MSDN上找到了这个小金块: 除非自动生成命令(如SqlCommandBuilder),否则默认的UpdateRowSource值为“两者”,在这种情况下,默认值为“无” 这很好,但每当我尝试在我的应用程序中更改该属性时,它都会在该行停止执行,但不会

我有一个SQL Server数据库,我正在将其拉入数据集中进行更改,但是,当我使用
SqlDataAdapter
更新任何特定表时,它不会以SQL使用的相同值启动ID键

我正在使用带有
SqlDataAdapter
SqlCommandBuilder
。我在MSDN上找到了这个小金块:

除非自动生成命令(如SqlCommandBuilder),否则默认的UpdateRowSource值为“两者”,在这种情况下,默认值为“无”

这很好,但每当我尝试在我的应用程序中更改该属性时,它都会在该行停止执行,但不会引发异常

有人有什么建议吗?我希望继续使用命令生成器,但我还需要自动增量ID值是并发的

FdaPoints.SelectCommand.CommandText = "SELECT * FROM points;"
FdaPoints.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord

谢谢

几个月前我找到了这个答案,忘了更新我自己的问题。可以使用以下SQL语句附加命令生成器的insert命令:

选择ID=SCOPE\u IDENTITY()

因此,最终代码如下所示:

            Dim da As New SqlDataAdapter("", conn)
            Dim cmd As New SqlCommand
            cmd = SQLCommandBldr.GetInsertCommand.Clone
            cmd.CommandText += "; SELECT ID = SCOPE_IDENTITY()"
            cmd.UpdatedRowSource = UpdateRowSource.Both
            da.InsertCommand = cmd
            da.UpdateCommand = SQLCommandBldr.GetUpdateCommand.Clone
            da.DeleteCommand = SQLCommandBldr.GetDeleteCommand.Clone
            da.Update(YourDataTable)
            da.Dispose()