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

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

12.03.2012, 11:08. Показов 13339. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru