Member 13299435 Ответов: 1

Удаление и изменение порядка серийного номера в datagridview


я хочу знать кодировку о том, как изменить порядок серийного номера, когда мы удаляем строку из datagridview в приложении c# windows. а также Как удалить строку, просто выбрав ее в datagridview. обратите внимание,что представление datagrid связано с базой данных.

СР. № Города
1 Дели
2 Мумбаи
3 Ченнаи
После удаления части № старшего 2 серийный номер 3 заменить его и показать СР nо2 вместо 3.

СР. № Города
1 Дели
2 Ченнаи

Что я уже пробовал:

я пробовал это сделать, но не могу

Karthik_Mahalingam

что такое СР нет? первичный ключ?

1 Ответов

Рейтинг:
2

OriginalGriff

Это не то, что вы хотите сделать, почти наверняка.
Скорее всего, столбец БД задан как поле идентификации-это означает, что база данных поддерживает его и гарантирует, что значения не дублируются. Эти цифры никогда не должны быть изменены, но оставлены до SQL.
И причина этого та же, что и причина, по которой вы вообще не должны этого делать: они почти наверняка упоминаются в другом месте вашей базы данных, когда вы используете код города для предотвращения дублирования - если вы начнете реорганизовывать числа, то каждая запись в этой таблице будет обновляться, и это приведет к двум проблемам:
1) Если какая - либо другая таблица ссылается на это через внешний ключ - как это должно быть и будет, - то внезапно связь нарушается, потому что "самое высокое значение" внезапно больше не существует. SQL не позволит этому случиться, поэтому изменения будут отклонены.
2) хуже того, если вы удалите Мумбаи, то все, что относится к Мумбаи через Sr.No "2" внезапно оказывается записанным как находящийся в Ченнаи. Это плохо, очень плохо, потому что требуется огромное количество ручных усилий, чтобы исправить данные, как только вы совершаете подобное изменение, особенно если вы не замечаете этого сразу.

Не делайте этого: если вам нужны последовательные числа, используйте ROWNUMBER() OVER чтобы дать вам только это-временные значения, которые отражают текущее состояние. Не пытайтесь изменить существующие значения идентификаторов, чтобы "выглядеть аккуратно" - это всегда вызывает больше проблем, чем решает.