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

C# 删除数据表c行后重置自动增量列#,c#,webforms,C#,Webforms,这是代码 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[] { S

这是代码

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....
范例 表
STT |…|…|
1 |
2 |
3 |
4 |

当我删除第3行时,我的STT列变成1 2 4。删除行后,如何将datatable重新排序为1 2 3。谢谢

,因为我知道您不想使用数据,所以
数据表
不直接支持此功能。但是,您可以通过以下脏溶液来实现此目的:

for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
    DataRow dr = dt.Rows[i];
    if (int.Parse(dr["STT"].ToString()) == STTLine)
        dr.Delete();
}
dt.Columns["STT"].ReadOnly = false;
int counter = 0;
foreach (DataRow row in dt.Rows)
{
    row["STT"] = ++counter;
}
dt.AcceptChanges();
dt.Columns["STT"].ReadOnly = true;