Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 01.11.2017
Сообщений: 28

Как удалить запись по его ID?

10.12.2017, 01:29. Показов 4001. Ответов 33
Метки нет (Все метки)

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

Не по теме:

Не знаю как тему лучше назвать



Есть база данных на access, в ней есть поле ID типа счетчик и я не знаю как удалить ту или иную запись (пользователь сам выбирает) по номеру её ID.

Вначале хотел, чтоб при выборе записи данные заносились в textbox и уже обращаясь к textbox'у я бы удалят нужные мне записи:
C#
1
sda = new OleDbDataAdapter("DELETE FROM Change WHERE ID = '" + textbox.text + "' ", con);
Понятное дело он стал ругаться на несоответствие типов данных. Затем я решил обращаться напрямую к дбгриду тыкнув на него курсором
C#
1
 sda = new OleDbDataAdapter("DELETE FROM Change WHERE ID = '"+ dataGridView3.CurrentRow.Cells["ID"] + "' ", con);
Короче, ошибку точно такую же выдает: "Несоответствие типов данных в выражении условия отбора".

Объясните пожалуйста как удалять записи подобным образом или в какой тип данных нужно конвертировать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.12.2017, 01:29
Ответы с готовыми решениями:

Как удалить вот этот вирус ieunitdrf.inf антивирусники пробывал всякие не могут его удалить
у меня браузер хором ваще не грузит и мозила постоянно вылетает сижу щас с оперы это все по ходу и за файла ieunitdrf.inf помогите...

Четыре кнопки на форме: добавить запись, удалить запись, закрыть, найти запись
Private Sub КнопкаДобавитьЗапись_Click() On Error GoTo Err_КнопкаДобавитьЗапись_Click DoCmd.GoToRecord , , acNewRec ...

Как удалить запись из БД по id
Здравствуйте. У меня есть БД статей, и страница где выводятся все статьи вместе, причем в каждой есть своя кнопка удалить статью. Написано...

33
 Аватар для Весельчак-У
35 / 35 / 20
Регистрация: 11.08.2012
Сообщений: 142
10.12.2017, 04:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от sonoramel Посмотреть сообщение
Такая же ошибка
Точно такая же? Ведь свойство Value имеет тип object.
0
0 / 0 / 1
Регистрация: 01.11.2017
Сообщений: 28
10.12.2017, 04:26  [ТС]
Абсолютно точно такая же
Миниатюры
Как удалить запись по его ID?  
0
 Аватар для Весельчак-У
35 / 35 / 20
Регистрация: 11.08.2012
Сообщений: 142
10.12.2017, 04:27
Код бы взглянуть...
0
0 / 0 / 1
Регистрация: 01.11.2017
Сообщений: 28
10.12.2017, 04:28  [ТС]
https://pp.userapi.com/c841324... wgGur8.jpg Я уже все типы перебрал

Добавлено через 1 минуту
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
27
28
29
30
31
32
33
34
private void button7_Click(object sender, EventArgs e)
        {
            try
            {
                con.Open();
                OleDbCommand deleteCmd = new OleDbCommand();
 
                deleteCmd.CommandText = "DELETE FROM Change WHERE ID = " + dataGridView3.CurrentRow.Cells["ID"].Value;
                deleteCmd.CommandType = CommandType.Text;
                deleteCmd.Connection = con;
                deleteCmd.Parameters.Add(new OleDbParameter("@ID", OleDbType.Integer));
                deleteCmd.Parameters["@ID"].Value = dataGridView3.CurrentRow.Cells["ID"];
                deleteCmd.ExecuteNonQuery();
                MessageBox.Show("Deleted", "SUCCESSFULLY", MessageBoxButtons.OK, MessageBoxIcon.Information);
 
 
                sda = new OleDbDataAdapter("SELECT * FROM Change", con);
                dt = new DataTable();
                sda.Fill(dt);
                dataGridView3.DataSource = dt;
            }
            catch (Exception err)
            {
                MessageBox.Show("ОШИБКА: " + err, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                con.Close();
                textBox1.Text = "";
                textBox2.Text = "";
                textBox3.Text = "";
            }
            con.Close(); 
        }
У меня тут уже все смешалось и старый и новый код
0
 Аватар для Весельчак-У
35 / 35 / 20
Регистрация: 11.08.2012
Сообщений: 142
10.12.2017, 04:32
Лучший ответ Сообщение было отмечено sonoramel как решение

Решение

Не так:
deleteCmd.Parameters["@ID"].Value = dataGridView3.CurrentRow.Cells["ID"];
А так:
deleteCmd.Parameters["@ID"].Value = dataGridView3.CurrentRow.Cells["ID"].Value;

Если используете параметры, в тексте команды на месте параметра ставится вопросительный знак:
deleteCmd.CommandText = "DELETE FROM Change WHERE ID = ?";
1
0 / 0 / 1
Регистрация: 01.11.2017
Сообщений: 28
10.12.2017, 04:39  [ТС]

Не по теме:

Упс, извиняюсь. Уже носом клюю


Спасибо, работает
0
 Аватар для Весельчак-У
35 / 35 / 20
Регистрация: 11.08.2012
Сообщений: 142
10.12.2017, 04:40
Рад помочь.
0
0 / 0 / 1
Регистрация: 01.11.2017
Сообщений: 28
10.12.2017, 04:43  [ТС]
Правда теперь, когда новые данные заносишь, то счетчик продолжает нумеровать с учетом удаленных записей. Т.е., были записи с ID 1 2 3, я удалил 2 и 3 и когда занес новые то счет пошел сразу с 4.. Ну это уже другая история, я так подозреваю
0
 Аватар для Весельчак-У
35 / 35 / 20
Регистрация: 11.08.2012
Сообщений: 142
10.12.2017, 04:46
В Access это нормально, так и должно быть.
0
0 / 0 / 1
Регистрация: 01.11.2017
Сообщений: 28
10.12.2017, 04:48  [ТС]
Цитата Сообщение от Весельчак-У Посмотреть сообщение
В Access это нормально, так и должно быть.
Ну я так преподу и скажу в понедельник
0
 Аватар для Весельчак-У
35 / 35 / 20
Регистрация: 11.08.2012
Сообщений: 142
10.12.2017, 04:53
Создайте любую таблицу в Access, добавьте несколько записей, затем удалите одну или две последние (не программно, а вручную). И убедитесь - при добавлении новых записей нумерация будет продолжаться со следующего за удалённой записью номера.
0
0 / 0 / 1
Регистрация: 01.11.2017
Сообщений: 28
10.12.2017, 04:58  [ТС]
Уже проверил.. Ну скажу, что так и было задумано
0
 Аватар для Весельчак-У
35 / 35 / 20
Регистрация: 11.08.2012
Сообщений: 142
10.12.2017, 05:04
Каждая запись в БД должна быть уникальной. Уникальность обеспечивается первичным ключом (поле ID). Если, например, запись с ID=4 когда-либо существовала, второй записи с ID=4 никогда не будет. Если, конечно, захотеть, то можно и это обойти.
0
0 / 0 / 1
Регистрация: 01.11.2017
Сообщений: 28
10.12.2017, 05:08  [ТС]
Цитата Сообщение от Весельчак-У Посмотреть сообщение
Если, конечно, захотеть
Ну, мне пока не хочется, все зависит от "хотелок" преподавателя.
А про ключи я в курсе, но я не знал, что даже удаленные будут браться во внимание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.12.2017, 05:08

Как удалить запись из таблицы?
Здрасте Уважаемые! У меня проблема возникла, нужно удалить определенную запись из таблицы. Т.е. у меня при открытии формы создается...

Как удалить текущую запись
открываю форму добавления новой записи DoCmd.OpenForm stDocName, , , stLinkCriteria DoCmd.GoToRecord , , acNewRec но...

Как удалить запись из комбобокса?
В комбобокс добавляется ненужные мне записи и именами 1 и 2. Мне нужно удалить их программно(через код), как?

Как удалить запись из DataTable?
Как удалить запись из DataTable. Как её тупо удалить. DataRow.Delete(); DataAdapter.Update() DataTable.AcceptChange() А в...

Как удалить запись в таблице?
бд Paradox7, редактирую с помощью DBEdit, вывожу в DBGrid. Подскажите пожалуйста, как удалить запись? С помощью TQuery?


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru