我有一个AutoIncrement列的数据表。如何在不添加新行的情况下获得列的下一个增量(-1,-2,-3,...)?获取数据表列的下一个自动增量值?
3
A
回答
6
如果它符合您的设计,您总是可以创建新行(datatable.newrow),并且它已经分配了nextId。它现在被浪费了,但是直到AcceptChanges
之前,这行并没有被委托给桌面。
-2
1
您可以在Select方法中针对DataTables使用MAX函数。
喜欢的东西(语法可能不完全正确):
DataRow row = dt.Select("MAX(id)")[0];
int nextId = row["id"] + 1;
MSDN与所有可以使用表达式的页面。 DataColumn..::.Expression Property
1
我有一个带有 AutoIncrement列的数据表。
你有一个带有AI列或带有AI列的SQL数据库的数据表吗?如果它是具有该列的SQL数据库,则无法获取下一个值,因为您的DataTable已断开连接。否则,您必须等待,直到您执行插入并使用@@ IDENTITY或类似的功能。
0
如果您正在使用SQL Server,你可以这样做:
SELECT cast(last_value as integer)+cast(increment_value as integer)
FROM sys.identity_columns
WHERE object_id=(SELECT id FROM sys.sysobjects WHERE name='PACLogErros')
AND name='ERRCod'
0
最好的办法是安德鲁提到,因为我们不能推断在SQL计算下一个身份算法使用@@ IDENTITY和如果你想多个人更新数据库,你计算出,当您尝试行保存到数据库
7
我得到了解决问题的方法(不是周围的工作)不会是相同的标识值:
要获得下一个auto-i从SQLServer的ncrement值:
SELECT IDENT_CURRENT('table_name'); -- This will fetch the present auto-increment value.
因此,
SELECT IDENT_CURRENT('table_name')+1; -- Next auto-increment value.
如果行从表身份和键删除这不会打破不连续的。
希望有所帮助。
相关问题
- 1. 获取数据库中的最后一个自动增量值
- 2. 如何获得自动增量列MVVM的下一个值
- 3. Vb.Net获取数据表中的最后一个自动增量值
- 4. 获取下一个自动递增
- 5. 从MySQL数据库中获取一个自动递增的值
- 6. 从PDO中获取下一个自动增量(无INSERT)
- 7. 在cakephp中获取下一个自动增量ID
- 8. MySQL获取下一个ZERO-FILLED自动递增值
- 9. 获取自动增量PK列
- 10. 如何在mysql表中获得下一个自动增量ID?
- 11. 从插入获取最后一个自动增量值?
- 12. 获取自动增量列的值sqlite的
- 13. 我如何获取下一个自动增量值使用PHP pdo
- 14. MSSQL - 获取自动增量列的值,并将其保存在另一列
- 15. 表(数据库)中的自动增量
- 16. 使用PHP获取下一个增量
- 17. 如何根据另一个表中的最后一个值做自动增量?
- 18. 递减一个自动增量列?
- 19. 合并自动增量表数据
- 20. 复制自动增量数据表
- 21. SQLite的自动增量基于另一个列的值
- 22. 获取HSQLDB中自动增量变量的值
- 23. 如何从数据库中获取自动递增的ID值
- 24. mysql添加一个带有起始值的自动增量列
- 25. SQL Server数据库表自动增量字段的设置值
- 26. 如何获取数据库中特定行的相应user_id(自动增量)值?
- 27. 从自动增量列中复制表中的数据
- 28. 从mysql数据库中获取自动增量ID
- 29. Android:每秒自动获取下一个列表项
- 30. 在mongoDB中获取一个字段的值列表的数量
我只是好奇,为什么你需要这样做? – 2009-06-18 17:32:22
我有一个父母和一个子表或一个零或一个关系。我想要显示DataGridView,它将有两列的列,并显示来自Parent的所有行,不管它是否有Child,但子元素(本质上是2列)仍然必须是可编辑的。因此,如果一个孩子已经存在,编辑一个现有孩子的子列将产生一个数据库编辑,但是编辑一个不存在的孩子将产生一个插入。我不需要为插入生成ID(因为它们是临时的),但是这可能需要用于将来的扩展 – Rado 2009-06-18 17:53:26