如何使用自动索引行(C#)向DataTable添加新列

时间:2015-05-07 12:27:27

标签: c#

我有一个数据表,我需要添加带有自动值的“id”或“index”列。 就像sql中的标识列一样。

我有一个函数可以返回起始索引:GetID(); 我需要第一行中此列的值将是GetID()返回的值,第二行中的值将是GetID()+ 1 .... GetID()+ 2 ...

我需要这样做没有循环。 当我创建新列时,我想使用“Expression”,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您可以使用DataTable列的AutoIncrement属性:

var dt = new DataTable();
var col = dt.Columns.Add("ID", typeof (long));
col.AutoIncrement = true;
col.AutoIncrementSeed = GetID();
col.AutoIncrementStep = 1;

但它仅适用于在添加此列后添加到DataTable 的行。

如果您将此标识列添加到包含现有行的DataTable中 - 这将不会更新现有行,因此在这种情况下,您仍然需要循环覆盖现有行并手动更新它们。