我有一個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