Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
3 / 2 / 1
Регистрация: 19.01.2020
Сообщений: 69

Удаление всех строк таблицы кодом

22.12.2020, 18:51. Показов 2387. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Как можно удалить все строки в определенной таблице через linq запрос?
Таблица выводится в DataGrid. Ниже дата грида есть кнопка "очистить все", после нажатия которой удаляются все строки таблицы.
Не могу найти как удалить все строки и из бд и из дата грида.
В основном нахожу только по DataGridView.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2020, 18:51
Ответы с готовыми решениями:

Удаление всех строк таблицы, кроме первой
Здравствуйте! Есть таблица, в которой первая строка состоит из th тегов, а остальные из td. Нужно удалить те, что с td. Пишу удаление...

Удаление всех строк Datagridview (после привязки Excel-таблицы)
В коде имеется загрузка в DataGridview1 всей excel таблицы (данный datagridview1 не виден пользователю). OpenFileDialog1.Title =...

При помощи подпрограмм подсчитать среднее арифметическое арифметических строк таблицы,а затем общую сумму всех строк таблицы
Вообщем задание такое с модулями При помощи подпрограмм подсчитать среднее арифметическое арифметических строк таблицы,а затем общую...

9
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
22.12.2020, 19:25
Лучший ответ Сообщение было отмечено Линг Линг как решение

Решение

https://metanit.com/sharp/adonet/4.5.php

Однако тут есть один толстый нюанс.
Для того, чтобы удалить что-то с помощью контекста, нужно это "что-то" сначала извлечь.
Т.е. сначала прочитать все записи таблицы, а потом их удалить.
Что не есть хорошо при "чистке" таблицы.

Возможно, Вас заинтересует такое решение:

Добавлено через 8 минут
По сути использование прямого SQL-запроса на чистку таблицы работает много эффективнее и быстрее нежели при привлечении класса DBContext.
При этом не следует забывать о том, что прямые запросы не должны конфликтовать с текущим содержимым буфера EF.

При этом сама очистка может быть выполнена двумя способами:

DELETE FROM TABLE и TRUNCATE TABLE.

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

Добавлено через 5 минут
Что же касается грида.
Не нужно, конечно, удалять строчки грида одну за другой - это во-первых долго, во-вторых, требует прямого управления транзакцией.
Проще и правильнее сначала запросом удалить все записи из источника (таблицы или таблиц БД), а затем просто перечитать датасет, связанный с гридом.

Также важно !
При многопользовательской работе приложения подобное удаление вполне может "испортить жизнь" другим пользователям.
Не следует применять его для таблиц, обмен данными с которыми может быть конкурентным.
1
Эксперт .NET
 Аватар для Usaga
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
23.12.2020, 04:52
Цитата Сообщение от Линг Линг Посмотреть сообщение
Как можно удалить все строки в определенной таблице через linq запрос?
Речь о Entity Framework или что? В мире далеко не только EF запросы генерирует с помощью LINQ.

Цитата Сообщение от Линг Линг Посмотреть сообщение
и из дата грида.
Свойство DataSource обнулите.
0
 Аватар для Andrey-MSK
3346 / 2233 / 387
Регистрация: 14.08.2018
Сообщений: 7,537
Записей в блоге: 4
23.12.2020, 08:47
Цитата Сообщение от MsGuns Посмотреть сообщение
T-SQL
1
TRUNCATE TABLE
Этим лучше вообще не пользоваться, если не знаешь что делаешь Потому и разрешение на выполнение этого оператора только у владельца БД. Простым пользователям его просто так не дают.
0
3 / 2 / 1
Регистрация: 19.01.2020
Сообщений: 69
23.12.2020, 12:38  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Речь о Entity Framework или что?
Да, EF6.

Цитата Сообщение от MsGuns Посмотреть сообщение
Возможно, Вас заинтересует такое решение: ... 1%86%D0%B5
Таблица из которой хочу все удалить - история входов в аккаунт. То бишь
юзер вводит логин и пароль, клацает кнопку "вход" и в эту таблицу улетает логин, дата время входа и успешность смог войти или произошла ошибка авторизации - не правильный логин или пароль. То бишь она никак с другими таблицами не связана. Ну и так как я сейчас постоянно ввожу логин и пароль когда запускаю приложение на проверку каких-либо функций или разметки, в таблице уже очень много записей. Хочу реализовать такую вещь, как админ учетку, в которой можно смотреть эту историю и в случае чего очищать таблицу непосредственно через кнопку в приложении


Спасибо за подробный ликбез, почитаю, попробую)
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
23.12.2020, 13:06
Линг Линг,
.. базовые операции с БД в EF (и не только) называются CRUD (Create-Read-Update-Delete) ... вот по этому сокращению и ищите ... например (для десктопа WinForms)
CRUD Operation Using Entity Framework In Windows Form Application

.. или у вас ASP.NET ..?
1
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
23.12.2020, 13:40
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Простым пользователям его просто так не дают.
Простые пользователи в БД за так не лазают
У них есть приложение.

Если разработчик приложения и он же User базы с правами оунера добавил в приладу такую функцию, то это его проблемы.

У truncate есть одна "хорошая" фишка - он сбрасывает счетчик инкремента (по крайней мере для MS SQL насколько я знаю). Она-то и привлекает не слишком опытных программистов, которых смущают айдишники, значения которых никак не соответствуют числу записей в таблице.

В некоторых случаях truncate весьма удобна, т.к. не замусоривает лог и работает намного быстрее delete.

Добавлено через 23 минуты
Линг Линг,

Чтобы понять как работает EF, можно привести такой пример:

Есть завод, получающий какое-то сырье и материалы и производящий продукцию, которую затем отправляет заказчикам-получателям.
Все движение сырья и продукции происходит через "главные ворота". Т.е. грузы регистрируются и учитываются.
Все работает замечательно - завод дает прибыль, все работники получают хорошие зарплаты и премии.

Но кому-то на заводе захотелось больше.
И он проделал дырку в заборе. И часть продукции или материалов перемещает через эту дырку. Мимо "главных ворот".
Прибыль завода начинает падать, зарплаты и премии - тоже.

При использовании, например, ADO.Net параллельно с EF, вы таким образом делаете ту самую "дыру в заборе", пряча движение сырья и товара от "Главных ворот", т.е. EF.
1
3 / 2 / 1
Регистрация: 19.01.2020
Сообщений: 69
23.12.2020, 15:16  [ТС]
Цитата Сообщение от carrotik Посмотреть сообщение
.. или у вас ASP.NET ..?
у меня ado.net
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
23.12.2020, 15:35
Цитата Сообщение от Линг Линг Посмотреть сообщение
Да, EF6.
А это что ?
0
3 / 2 / 1
Регистрация: 19.01.2020
Сообщений: 69
23.12.2020, 15:45  [ТС]
Цитата Сообщение от MsGuns Посмотреть сообщение
А это что ?
Entity Framework 6
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2020, 15:45
Помогаю со студенческими работами здесь

Удаление всех ссылок в текстовом поле всех записей таблицы MySQL
Здравствуйте. Помогите, пожалуйста, составить sql-запрос для удаления всех ссылок в текстовом поле всех записей таблицы MySQL. Есть таблица...

Работа с файлами и каталогами. Удаление всех пустых строк у всех файлов лежащих в одной папке
В одной папке находится множество текстовых файлов *.txt Все файлы содержат некоторый текст Между строк каждого файла могут встречаться...

Удаление строк из таблицы
Добрый день, помогите реализовать следующую программу. Имеется файл .mdb лежащий на сетевом диске в нем есть несколько таблиц: A -...

Удаление строк из таблицы
Добрый день! подскажите, как можно разрулить следующую ситуацию: есть столбец, в котором находятся номенклатуры товаров (8 цифр), но тут...

Удаление строк из таблицы
Здравствуйте. Помогите с удалением поля из таблицы по заданому индексу. Пользователь вводит в текстовое поле индекс "ID", а в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru