Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/40: Рейтинг темы: голосов - 40, средняя оценка - 4.90
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94

Как очистить таблицу в БД от строк

23.01.2014, 17:42. Показов 8357. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пробовал ставить на кнопку
C#
1
2
3
4
5
 while (bDDataSet.1.Rows.Count>0)
            {
            bDDataSet.1.Rows.RemoveAt(0);
            }
1TableAdapter.Update(bDDataSet.1);
Кнопка стоит на форме рядом с dataGridView
После нажатия все строки удаляются, но только до закрытия формы.
Таким же способом строки добавляются нормально:
C#
1
2
3
4
5
6
7
while (i < stri.Length)
            {
                Table.bDDataSet.1.Rows.Add(stri[i]);
                i = i + 1;
            }
            i = 0;
            Table.1TableAdapter.Update(Table.bDDataSet.1);
И при закрытии формы всё сохраняется в БД.
Что не так с удалением?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2014, 17:42
Ответы с готовыми решениями:

Как очистить таблицу?
db1DataSet.fire.Clear(); А как передать изменения в БД? Спасибо!

Как очистить таблицу?
Пишу : mysql_query (&quot;TRUNCATE TABLE test_tb&quot;, $db); Ошибок не вызывает но и таблицу не чистит.

Как очистить таблицу DataSet
db1DataSet.fire.Clear(); - таким образом таблица DataSet очищается и в гриде - нет строк. А как передать изменения в БД? Спасибо!

17
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
23.01.2014, 18:05
Vic45rus, Remove удаляет строки из таблицы. Физически удаляет. Используйте Delete, он проставляет статус "удалена", и при Update строки с этим статусом удаляются из базы.
1
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94
23.01.2014, 18:07  [ТС]
kodv, Нету такого там. Если вы имеете в виду Table.bDDataSet.1.Rows.Delete
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
23.01.2014, 18:14
C#
1
while(bDDataSet.1.Rows.Count>0) bDDataSet.1.Rows[0].Delete();
1
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94
23.01.2014, 19:04  [ТС]
kodv, А так приложение зависает на цикле
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
23.01.2014, 19:05
Это уже моя невнимательность:
C#
1
foreach(DataRow dr in  bDDataSet.1.Rows) dr.Delete();
1
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94
23.01.2014, 19:08  [ТС]
Теперь на следующей строке выдает ошибку при выполнении:
Для элемента Update требуется действительный DeleteCommand при передаче коллекции DataRow с удаленными строками.

Вот строка:
C#
1
1TableAdapter.Update(bDDataSet.1);
Как это решить?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
23.01.2014, 19:35
Ну раз TableAdapter, то залезте в дизайнер вашего DataSet'а, выберите таблицу, которую вы очищаете и настройте для нее DataAdapter. Если хотите исправить ошибку непосредственно из кода, то:
C#
1
2
1TableAdapter.Adapter.DeleteCommand = new OleDbCommand("DELETE FROM Table1 WHERE Id = ?", 1TableAdapter.SelectCommand.Connection);
1TableAdapter.Adapter.DeleteCommand.Parameters.Add("@Id, OleDbType.Integer, 1, "Id");
Код приблизительный. Я не знаю ни то, какого поставщика для базы данных вы используете, ни какая структура у вашей таблицы. Надеюсь, что сможете адаптировать самостоятельно.
1
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94
23.01.2014, 20:26  [ТС]
kodv,
Цитата Сообщение от kodv Посмотреть сообщение
Если хотите исправить ошибку непосредственно из кода
Ругается на SelectCommand. Смог нарыть из тырнета, что в дизайнер bdDataSet нужно добавить кое-что
Вот, что там получилось:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
namespace WindowsFormsApplication5.1TableAdapters
{
    partial class BDDataSet
    {
        public string SelectCommand
        {
            get
            {
                return CommandCollection[0].CommandText;
            }
            set
            {
                CommandCollection[0].CommandText = value;
            }
        }
    }
}
namespace WindowsFormsApplication5 {
    
    
    public partial class BDDataSet {
        partial class 1DataTable
        {
        }
    }
}
Однако ругается все равно на SelectCommand в коде и на CommandCollection в дизайнере

Использую в качестве поставщика Microsoft.Jet.OLEDB.4.0
У таблицы только один столбец.
0
Заблокирован
23.01.2014, 21:08
У Вас всё как-то очень запутанно...
Лично я, не представляю, что может быть такого сложного в таблице с одним столбцом, чтобы приходилось самому создавать OleDbCommand, чтобы требовался какой-то TableAdapter...

Посмотрите пример и попробуйте переделать под себя.
https://www.cyberforum.ru/ado-... ost5616558
Наверняка выйдет много проще.
1
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94
23.01.2014, 21:38  [ТС]
Водяной Змей, Эх, опять ошибка:
Динамическое создание SQL для DeleteCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей.
В примере адаптирую и всё работает, а когда переношу в свой проект, вылазит эта ошибка
0
Заблокирован
23.01.2014, 21:42
Нужен ещё столбец со счётчиком. И счётчик лучше сделать ещё ключевым полем.
Я про Id.

Впрочем, Ваш вариант, если там все эти команды присутствуют, тоже не взлетел бы без счётчика.
А создавать их автоматически (как у меня) или вручную (как у Вас), - не суть.
1
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94
23.01.2014, 22:20  [ТС]
Водяной Змей,
Столбец добавил, ключевым его сделал, счетчик тоже есть.
И снова:
Дополнительные сведения: В DataTable "Таблица1" отсутствует DataColumn "Id" для данного SourceColumn "Id"
Какое решение на сей раз?
0
Заблокирован
23.01.2014, 22:32
Проект скиньте с БД вместе.

Какое решение на сей раз?
Ну вообще говоря, может и никакого не оказаться.
На форумах полно тем, где никто так и не ответил.
Не лучше ли, исходя из этого, научиться правильно гуглить и разбираться во всём самому?

Я много вопросов на форумах задаю, как думаете? И раньше, когда был новичком, много задавал?
1
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94
23.01.2014, 22:50  [ТС]
С этим разобрался. Нужно было пересоздать bdDataSet
Удаление заработало! Спасибо огромное!

Но появилась другая проблема.
Раньше добавлял строки, заполняя их элементами массива таким способом:
C#
1
2
3
4
5
6
while (i < List.Length)
            {
                Table.bDDataSet.Таблица1.Rows.Add(List[i]);
                i = i + 1;
            }
            i = 0;
Теперь это не работает, т.к. столбца два. Как быть?
В тырнете по этому поводу ничего вроди, искал уже. Даже до этого способа допёр сам путем проб и ошибок.
0
Заблокирован
24.01.2014, 00:15
Ну можно сначала добавить нужное количество строк, потом уже заполнять их ячейки с помощью приёма типа
C#
1
dataSet1.Rows[0].ItemArray[0]
Может и ещё как можно.
Вы бы поэкспериментировали.
Вам же IntelliSense не отключили за неуплату?
1
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
24.01.2014, 04:48
Цитата Сообщение от Vic45rus Посмотреть сообщение
В тырнете по этому поводу ничего вроди, искал уже.
Плохо искали. Можете там и другие статьи почитать. Лишним не будет.
1
0 / 0 / 0
Регистрация: 20.01.2019
Сообщений: 21
27.01.2020, 12:07
C#
1
2
3
4
5
foreach(User u in users)
                {
                    db.Users.Remove(u);
                }
                db.SaveChanges();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.01.2020, 12:07
Помогаю со студенческими работами здесь

Как очистить таблицу в DataGridView?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Подскажите как очистить таблицу от записей
Здравствуйте.У меня есть таблица,которая при закрытии формы должна постоянно очищаться.Подскажите как сделать.Есть такой вариант: ...

Как очистить arp-таблицу на маршрутизаторе?
Если: Router#clear ? aaa Clear AAA values access-list Clear access list statistical information ...

Как sql-запросом очистить таблицу?
Как sql-запросом очистить таблицу?

Как очистить таблицу в бд через делфи?
Делаю программу где выводятся таблицы из Access и необходимо создать кнопку которая очищала бы всю таблицу с названием &quot;zakaz&quot;...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru