Сброс автоинкрементного столбца после удаления строки данных c# - PullRequest
0 голосов
/ 13 марта 2020
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();
}

Пример таблицы STT | ... | ... | 1 | 2 | 3 | 4 | Когда я удаляю 3-ю строку, мой столбец STT становится 1 2 4. Как мне изменить порядок данных в 1 2 3 после удаления строки. Спасибо

1 Ответ

0 голосов
/ 13 марта 2020

Как я понимаю, вы не хотите 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...