删除数据表行后重置自动增量列 c#

Reset AutoIncrement Column after deleting Datatable row c#

DataTable dt = new DataTable();
DataColumn STT = new DataColumn("STT");
STT.DataType = System.Type.GetType("System.Int32");
STT.AutoIncrement = true;
STT.AutoIncrementSeed = 1;
STT.AutoIncrementStep = 1;
dt .Columns.AddRange(new DataColumn[] { STT....

这是代码

for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
    DataRow dr = dt.Rows[i];
    if (int.Parse(dr["STT"].ToString()) == STTLine)
        dr.Delete();
}

例子 Table
STT| ...| ...|
1 |
2 |
3 |
4 |
当我删除第 3 行时,我的 STT 列变为 1 2 4。如何在删除行后将我的数据表重新排序为 1 2 3。谢谢

据我所知,您不想 Clear 数据,因此 DataTable 不直接支持此功能。但是,您可以通过脏解决方案执行此操作,如下所示:

dt.Columns["STT"].ReadOnly = false;
int counter = 0;
foreach (DataRow row in dt.Rows)
{
    row["STT"] = ++counter;
}
dt.AcceptChanges();
dt.Columns["STT"].ReadOnly = true;