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

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

10.12.2017, 01:29. Показов 3938. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru