С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/64: Рейтинг темы: голосов - 64, средняя оценка - 4.50
 Аватар для TrIcKsTeR13r
6 / 6 / 0
Регистрация: 19.11.2010
Сообщений: 36

Удаление и редактирование строк в БД через DataGridView

12.03.2012, 11:08. Показов 13336. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пересмотрел уже кучу всего , но так и не нашёл нормального способа удалить(обновить) строку в dataset
Пробовал удалять так dataGridView1.Rows.RemoveAt(dataGridView 1.SelectedRows[0].Index); но после апдейта дата сета (_ad.Update(_dataSet);) все данные из таблицы пропадают ...
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public partial class Form1 : Form
    {
        DataRow r;
        DataSet _dataSet;
        IDataAdapter _ad;
        IDbConnection _conn;
        public Form1()
        {
            InitializeComponent();
            StartPosition = FormStartPosition.CenterScreen;
            Text = "BD test";
            FormClosing += new FormClosingEventHandler(Form1_FormClosing);
        }
 
        void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                _dataSet.Dispose();
                _conn.Dispose();
                MessageBox.Show("Соединение закрыто");
            }
            catch 
            {
                MessageBox.Show("Упс .. ошибочка, соединение не закрылось ^_^");
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            _dataSet = CrtDataset();
            dataGridView1.DataSource = _dataSet.Tables[0];
        }
        DataSet CrtDataset()
        {
            try
            {
                    string connectionBD = @"Data Source=GRIMMJOW-ПК\SQLEXPRESS; Initial Catalog=Database; Integrated Security=True; Pooling=False;";
                    SqlConnection conn = new SqlConnection(connectionBD);
                    MessageBox.Show("Соединение установленно", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    SqlDataAdapter ad = new SqlDataAdapter();
                     ad.TableMappings.Add("Table", "Tab");
                     ad.SelectCommand = new SqlCommand("select * from Tab", conn);
                     ad.DeleteCommand = new SqlCommand("delete from Tab", conn);
                     SqlCommandBuilder bil = new SqlCommandBuilder(ad);
                     _ad = ad;
                     _conn = conn;
                     DataSet dataset = new DataSet("Tab");
                     ad.Fill(dataset);
                     return dataset;
            }
            catch (SqlException c)
            {
                //В случие ошибки или нет доступа
                MessageBox.Show(c.Errors[0].Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return _dataSet;
            }
        }
       private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                _ad.Update(_dataSet);
                MessageBox.Show("Сохранено");
            }
            catch
            { 
                MessageBox.Show("Ох ох засейвить не получилось", "", MessageBoxButtons.OK, MessageBoxIcon.Error); 
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                
                 dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
            }
            catch
            {
                MessageBox.Show("Фиг там )))");
            }
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2012, 11:08
Ответы с готовыми решениями:

Удаление строк в БД через DataGridView
Здравствуйте, во время удаления рядка все проходит нормально, но когда я хочу добавить новый рядок то ID показывает не верно (1 рядок может...

Datagridview и удаление строк через BindingSource
Здравствуйте, столкнулся с такой проблемой. Имеется БД SQL SERVER, в базе таблицы с identity столбцами (ID). Тут столкнулся с такой...

Удаление/добавление/обновление строк в БД(Mysql) через dataGridView
Через процедуру заношу в dataGridView данные из таблицы: string sql = "call SubOrderList(@in_id)"; string...

6
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
12.03.2012, 13:05
Для начала: https://www.cyberforum.ru/ado-... 82279.html

Удалять/добавлять/изменять записи программно в гриде не стоит. Лучше работать с DataTable вот здесь обсуждение этой темы: https://www.cyberforum.ru/ado-... 50821.html
0
 Аватар для TrIcKsTeR13r
6 / 6 / 0
Регистрация: 19.11.2010
Сообщений: 36
12.03.2012, 22:30  [ТС]
_katon_,
это всё конечно, хорошо, но я там так и не нашёл как мне удалить конкретную выделенную строку в дата грид вью что бы она при этом и из дата сета удалилась, а стало быть и из БД
у меня апдейтит таблицу, прекрасно добавляются в неё значения , но вот с удалением проблемы .. при удалении видно как удаляется только выделенная строка из дата грид ... но после сохранения,все записи хранимые в таблице удаляются и остаются лишь только добавленные после удаления
0
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
13.03.2012, 08:54
Как-то так:
C#
1
2
3
DataRow current = ((DataRowView)dataGridView1.CurrentRow.DataBoundItem).Row;
current.Delete();
_ad.Update(_dataSet);
SQL
1
DELETE FROM Tab
Очистит всю таблицу. Нужно указывать какую конкретно строку удалять.
2
 Аватар для TrIcKsTeR13r
6 / 6 / 0
Регистрация: 19.11.2010
Сообщений: 36
13.03.2012, 09:13  [ТС]
serg42,
DataRow current = ((DataRowView)dataGridView1.CurrentRow.D ataBoundItem).Row;
current.Delete();
_ad.Update(_dataSet);
в этом случае вот что пишет: "Динамическое создание SQL для DeleteCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей."
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
13.03.2012, 11:04
Цитата Сообщение от TrIcKsTeR13r Посмотреть сообщение
в этом случае вот что пишет: "Динамическое создание SQL для DeleteCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей."
Рекомендую эту мантру читать непрерывно и вслух, пока не снизойдет на тебя просветление и не поймешь ее истинный скрытый смысл.

ну по русски же написано
0
 Аватар для TrIcKsTeR13r
6 / 6 / 0
Регистрация: 19.11.2010
Сообщений: 36
13.03.2012, 18:27  [ТС]
nio,
вы могли бы просто объяснить насчёт столбца ключей, так было бы проще и понятнее, в отличие от вашего сарказма ....
какие сведения должна возвращать о столбце ключей SelectCommand, может подскажете ? (или хотя бы ссылку скините где про это почитать можно) ?


Спасибо милейший, уже не нужно, разобрался)

Добавлено через 46 минут
Цитата Сообщение от serg42 Посмотреть сообщение
Как-то так:
C#
1
2
3
DataRow current = ((DataRowView)dataGridView1.CurrentRow.DataBoundItem).Row;
current.Delete();
_ad.Update(_dataSet);
спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2012, 18:27
Помогаю со студенческими работами здесь

Удаление, редактирование БД dataGridView
1.Хочу удалять из главной таблицы БД строку и чтобы из других таблиц тоже удалялась строка. БД находятся на другой форме. Из главной удаляю...

Как реализовать редактирование строк в datagridview
Всем доброго времени суток, я прошу подсказать или помочь, как реализовать редактирование datagridview в visual studio. Задача такая что:...

Редактирование и удаление строк
при запуски формы данные с листа передаются на listbox в форму. передает все хорошо, но есть и минус. последняя строчка отображается...

Редактирование и удаление строк в БД
И еще раз) Привет, Форум Продолжаю изучать эту статью. В конце дан целиковый код, реализующий все основные функции. Но в этом коде не...

Редактирование и удаление строк в БД
Погуглил, почитал всю найденную информацию о данной проблеме, но так и не понял, как ее решить. Для обновления данных прописываю: ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru