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

sig*_*gil 3 c# datatable

我有以下代码将自动编号列添加到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);
}
Run Code Online (Sandbox Code Playgroud)

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

Tim*_*ter 7

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);
    }
}
Run Code Online (Sandbox Code Playgroud)