Есть ли способ в sql или веб-разработчике полностью удалить, скажем, из gridview все, кроме последней строки?

#asp.net #sql

#asp.net #sql

Вопрос:

У меня настроен веб-портал, где клиенты могут добавлять контакты компании и т. Д. В базу данных sql Через просмотры сетки и подробные представления, которые я создал с помощью Microsoft Web Developer. Мне нужно настроить его так, чтобы, хотя клиенты, имеющие права, могли редактировать и удалять записи контактов, они не могли удалить последнюю. В системе должен быть один оставшийся. Я знаю, это звучит как странный запрос, но он необходим. Это можно сделать через VB, SQL или через один из объектов веб-разработчиков, таких как представление сведений?

Спасибо!

Комментарии:

1. Что вы подразумеваете под «последней строкой»? За исключением некоторых СУБД, базы данных в целом, как правило, не заботятся о порядке строк в какой-либо конкретной таблице, если вы не сообщите им об этом (через order by предложение).

2. Прошу прощения. Это не обязательно должна быть последняя строка, мне просто нужно настроить ее так, чтобы в таблице оставалась одна запись. Какой бы он ни был.

3. Итак, вам все равно, какая строка остается, если в таблице есть хотя бы одна строка?

4. На вашем месте я бы немного поработал над этой темой. Это очень сложно понять.

5. Вы совершенно правы. Я сделаю это сейчас. И это правильно. В таблице должна остаться хотя бы одна строка.

Ответ №1:

Не странный запрос, насколько я понимаю необходимость. Решение, которое мы использовали, заключается в том, что фактическая учетная запись администратора по умолчанию не отображалась в списке удаления, поскольку она была «сгенерирована системой». Это может быть не переоснащение, которое вы можете выполнить.

Чего вы не можете сделать, так это использовать автоматическое перетаскивание мусора и установить этот тип функциональности. Вам нужно будет либо выполнить запрос, чтобы удалить последний запрошенный элемент, написать триггер в базе данных, либо написать пользовательский код, чтобы не удалять последний элемент.

В качестве примера сопряжения: с datasets, поскольку они отключены, вы можете удалить последнюю строку перед отправкой запроса на удаление. С LINQ и EF у вас есть аналогичные параметры для формирования возвращаемых данных.

Затем, если вы хотите явно управлять своим кодом (хорошо), вы можете просмотреть элементы и убедиться, что последний не удаляется.

Если вы хотите сделать это как можно более «безопасным», вы можете рассмотреть триггер в таблице, который проверяет, является ли удаление последним пользователем администратора для конкретной организации, и прервать, если это так. Тогда пользователь может сказать «удалить все» в Интернете, но база данных защищает их.

Комментарии:

1. Много хороших предложений. Спасибо. Я приму эти предложения и попытаюсь создать нужный мне код. Я могу попробовать посмотреть, как создать триггер, как вы предложили.

2. Триггер — это немного больше работы и не такой «удобный для пользователя», особенно если пользователь хочет удалить все по какой-то глупой причине. Но это добавляет уровень безопасности на самом глубоком уровне.