我填充了数据集,并允许用户在数据表中添加一行。一旦他们确认他们想要添加行,我就将行添加到DataSet并继续更新Database DataTable。
MyTypedDataSet.MyDataTable newRow = dataSetObject.MyDataTable.NewMyDataTableRow();
newRow.Description = "New Row";
dataSetObject.MyDataTable.AddMyDataTableRow( newRow );
我可以使用SQLConnection并调用SQLDataAdapter.Update()来更新数据表,但问题是,数据集中的ID值会被转移到数据库中,这仍然是负数。
如何更新我的DataTable,以便新添加的行具有正确递增的ID?
答案 0 :(得分:1)
您没有指出您正在使用的RDBMS,但鉴于您的评论和我的假设,您使用的是SQL Server。并且,您正在使用IDENTITY属性来增加键值。
如果新行未获得正确的下一个标识值,则可以运行以下命令重置该值。
DBCC CHECKIDENT('table-name', RESEED)
这将使用表格中的最大值重新设定标识值。
您可以使用IDENT_CURRENT,IDENT_INCR和IDENT_SEED函数查看有关身份的当前信息。
答案 1 :(得分:0)
不要从您的客户端获取ID数据。而是使用为表格生成的ID。
可能您可以使用捕获MAX(col)的存储过程(CRUD)并将nextid放入创建的新行中。