私は、AutoIncrement列を持つデータテーブルを持っています。新しい行を追加せずに列の次のインクリメント(-1、-2、-3、...)を取得するにはどうすればよいですか?datatable列の次のautoincrement値を取得しますか?
答えて
デザインに合っていれば、いつでも新しい行(datatable.newrow)を作成することができ、すでにnextIdが割り当てられています。今は無駄になっていますが、行はあなたがAcceptChanges
までテーブルにコミットされていません。
私が探していた答えではありませんが、テーブルが空でIDENT_CURRENTがまだ返されていれば – Rado
自動増分値は常にその列の最大値であるため、max(列名)+1を使用して取得することができます。
DataTableに対してSelectメソッドでMAX関数を使用できます。以下のような
何か(構文が完全に正しくない可能性があります):
DataRow row = dt.Select("MAX(id)")[0];
int nextId = row["id"] + 1;
MSDNには、使用できるすべての式を持つページがあります。 DataColumn..::.Expression Property
私は AutoIncrement列を持つデータテーブルを持っています。
AIカラムを持つデータテーブル、またはAIカラムを持つSQLデータベースがありますか?列を持つSQLデータベースの場合は、DataTableが切断されているため、次の値を取得できません。それ以外の場合は、挿入を行い、@@ IDENTITYまたは同様の機能を使用するまで待つ必要があります。
これはAI列のデータテーブルです – Rado
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'
最良の方法は、我々はSQLは、次のアイデンティティを計算しているアルゴリズムを推測することはできませんのでアンドリューが述べたように@@ IDENTITYを使用することです複数の人がデータベースを更新すると考えると、データベースに行を保存しようとすると計算したID値が同じにならない
私はこの問題を解決しました(回避策なし):
次の自動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.
行がアイデンティティをテーブルから削除されている場合、これは中断されませんし、キーが連続していないです。
希望に役立ちます。
を実行する必要があります。 ** 0 **と思われます。 1を返し、1をインクリメントすると2になります。これは間違っています。 –
- 1. DataTableから値を取得
- 2. Cの次の列挙値を取得しますか?
- 3. php 2次元配列の値を取得しますか?
- 4. Datatableから列の値を取得する方法
- 5. PHP配列の次の値を取得
- 6. 2次元配列の列の最小値を取得する
- 7. 次のコードから 'href'値を取得しますか?
- 8. C#DataTableまたはBindingSourceから値を取得する
- 9. DataTableからセルの値を取得する方法
- 10. DataTable - Varchar()列からMax()の値を探しますか?
- 11. UIコントロールにデータをバインドせずにDataTableから値を取得しますか?
- 12. MySQLは列の値から列名を取得します
- 13. xml文字列からキー値を取得する2次元
- 14. JavaScript:多次元配列から値を取得する方法
- 15. 値をチェックする方法はデータテーブルの列にありますか?私は、DataTableの次まし
- 16. 多次元配列の値を取得する方法
- 17. オブジェクトを含む多次元配列から値を取得
- 18. PHPの多次元配列のキー値を取得
- 19. PHP配列foreach()内の次のキー/値を取得
- 20. Distinct値を取得してDataTableに変換する
- 21. PHP:Pythonのように配列の値を取得しますか?
- 22. 多次元配列から値を取得
- 23. 多次元配列からキー値を取得
- 24. 次の入力の値を取得
- 25. SQL - isIdentityカラムの次の値を取得
- 26. DataTableの列のSqlTypeを取得する方法は?
- 27. NHibernate autoincrement文字列
- 28. Javaは列挙型の値を取得しますか?
- 29. InfopathはSharePointの列からmax()値を取得します
- 30. 配列内のNSValueからCGPoint値を取得します
私はちょうど興味があります、なぜあなたはそれを行う必要がありますか? –
私は1対1または1対1の関係を持つ親テーブルと子テーブルを持っています。私は両方の列を持つDataGridViewを表示し、子があるかどうかにかかわらず、親からのすべての行を表示したいが、子要素(本質的に2列)はまだ編集可能でなければならない。したがって、子がすでに存在する場合、既存の子の子列の編集はデータベースの編集を行いますが、存在しない子の編集は挿入を生成します。挿入用のIDを生成する必要はありません(一時的な一時的なものであるため)。将来の拡張機能にはこれが必要な場合があります。 – Rado