在 DataTable 已有数据后设置自动编号

2023-11-23

我有以下代码将自动编号列添加到DataTable:

public void AddAutoIncrementColumn(DataTable dt)
{
   DataColumn column = new DataColumn();
   column.DataType = System.Type.GetType("System.Int32");
   column.AutoIncrement = true;
   column.AutoIncrementSeed = 0;
   column.AutoIncrementStep = 1;
   dt.Columns.Add(column);
}

但是,对于表中已存在的所有行,该值将为空;似乎只有在添加此列后添加的新行才会触发自动增量。有没有办法为已经存在的行设置自动编号值?


我认为不可能触发AutoIncrement当行已经在表中时的功能。但您可以轻松手动更新表:

public void AddAutoIncrementColumn(DataTable dt)
{
    DataColumn column = new DataColumn();
    column.DataType = System.Type.GetType("System.Int32");
    column.AutoIncrement = true;
    column.AutoIncrementSeed = 0;
    column.AutoIncrementStep = 1;
    dt.Columns.Add(column);
    int index = -1;
    foreach (DataRow row in dt.Rows)
    {
        row.SetField(column, ++index);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 DataTable 已有数据后设置自动编号 的相关文章

随机推荐