Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
10 / 10 / 1
Регистрация: 27.04.2010
Сообщений: 37

DataGridView(Edit,Delete)C#

26.05.2010, 19:36. Показов 5018. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, что нужно сделать, чтобы при нажатии на кнопку Edit , данные которые я отредактировал, сохранились в моей БД ну, а при нажатие Delete удалились с моей БД
http://img443.imageshack.us/im... 769277.jpg
скрин моего DataGridView

вот мой скрипт
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT        tovar.ID, tovar.Code, tovar.Total_tovar, firma.cros, color.Black, group_tovar.naimenovanie, model.sl_55, SIZE.xxl, sell.total_sell, sell.price_sell, 
                         sell.data_sell, zavoz_tovara.price_zakypku, zavoz_tovara.total_privez_tovara, nakladnaia.number
FROM            tovar INNER JOIN
                         firma ON tovar.Firma_ID = firma.ID INNER JOIN
                         color ON tovar.Color_ID = color.ID INNER JOIN
                         group_tovar ON tovar.group_tovar_ID = group_tovar.ID INNER JOIN
                         model ON tovar.Model_ID = model.ID INNER JOIN
                         SIZE ON tovar.Size_ID = SIZE.ID INNER JOIN
                         sell ON tovar.ID = sell.tovar_ID INNER JOIN
                         zavoz_tovara ON tovar.ID = zavoz_tovara.ID INNER JOIN
                         nakladnaia ON zavoz_tovara.nakladnaia_ID = nakladnaia.ID
как вы видите, что в моём DataGridView отображаютса данные из нескольких таблиц


что нужно сюда написать? чтобы всё заработало?
C#
1
2
3
4
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2010, 19:36
Ответы с готовыми решениями:

Есть ли команды в C# наподобие Insert, Edit, Delete, Post в Delphi?
Есть ли команды в C# наподобие Insert, Edit, Delete, Post в Delphi?

DataGridView+SqlCeCommand+Insert,Update,Delete
Доброго времени суток всем! Помогите разобраться,добавляю в таб.через SqlCeCommand. SqlCeCommand command = new...

dataset edit и delete кнопки
Добрый день. Нужна ваша помощь, подскажите пожалуйста как можно добавить в datagridview кнопки delete и edit, для удаления и редактирования...

10
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
26.05.2010, 19:55
В скольки таблицах нужно делать обновление?
Если в одной, то можно просто при помощи запроса.
Если в 2-х и более, то нужно выполнять или последовательность запросов, или хранимую процедуру.
0
10 / 10 / 1
Регистрация: 27.04.2010
Сообщений: 37
26.05.2010, 20:08  [ТС]
nio вы меня уже несколько раз выручали мб у вас и сейчас удастся

Цитата Сообщение от nio Посмотреть сообщение
В скольки таблицах нужно делать обновление?
Если в одной, то можно просто при помощи запроса.
Если в 2-х и более, то нужно выполнять или последовательность запросов, или хранимую процедуру.
в 8 таблицах надо делать обновления,а удаление надо делать только из tovar,zavoz_tovara (2 таблицы)
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
26.05.2010, 22:36
Цитата Сообщение от SkySnow Посмотреть сообщение
в 8 таблицах надо делать обновления,а удаление надо делать только из tovar,zavoz_tovara (2 таблицы)
я бы в таком случае делал хранимые процедуры с использованием транзакций
0
10 / 10 / 1
Регистрация: 27.04.2010
Сообщений: 37
26.05.2010, 22:49  [ТС]
Цитата Сообщение от nio Посмотреть сообщение
я бы в таком случае делал хранимые процедуры с использованием транзакций
извините,я вас плохо понял(((( можно по подробнее? и если не трудно с примером)
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
26.05.2010, 23:02
Выдержки из MSDN
Хранимые процедуры могут существенно упростить управление базой данных и вывод сведений об этой базе данных. Хранимая процедура — это предварительно скомпилированная совокупность инструкций SQL и необязательных инструкций управления потоком, хранящаяся под определенным именем и обрабатываемая как единое целое. Хранимые процедуры хранятся в базе данных, могут выполняться в результате единственного вызова из приложения, позволяют использовать пользовательские переменные, условное выполнение и другие мощные возможности программирования.

Хранимые процедуры могут содержать поток выполнения программы, логику и запросы к базе данных. Они могут принимать параметры, а также возвращать параметры, отдельные или множественные результирующие наборы и значения.

Хранимые процедуры можно использовать для тех же целей, что и инструкции SQL, при этом возникают следующие преимущества:

В отдельной хранимой процедуре можно выполнить набор инструкций SQL.

В хранимой процедуре можно ссылаться на другие хранимые процедуры, что позволяет упростить последовательность сложных инструкций.

Хранимая процедура компилируется на сервере в момент создания, поэтому она выполняется быстрее, чем отдельные инструкции SQL.

Функциональные возможности хранимой процедуры зависят от возможностей, доступных в базе данных. Дополнительные сведения о возможностях хранимой процедуры см. в документации по базе данных.
Транзакция состоит из одной команды или группы команд, которые выполняются как пакет. Транзакции позволяют объединить несколько операций в одну единицу работы. Использование транзакции дает приложению возможность прерывать (откатывать) все изменения, выполненные в транзакции, если во время выполнения какой-либо части обработки транзакции возникнет ошибка.

Для обеспечения согласованности данных транзакция должна соответствовать свойствам ACID (атомарность, согласованность, изоляция и устойчивость). Большая часть систем реляционных баз данных, таких как Microsoft SQL Server, поддерживает транзакции, предоставляя блокировку, ведение журнала и средства управления транзакцией при выполнении клиентским приложением операций обновления, вставки или удаления.

Если база данных поддерживает транзакции, для предотвращения несогласованности базы данных можно сгруппировать несколько операций базы данных в одну транзакцию. Если в какой-либо точке транзакции возникает ошибка, может быть выполнен откат всех обновлений к их состоянию до начала транзакции. Если ошибки не возникают, обновления заканчиваются фиксированием транзакции как завершенной.

Например, в банковском приложении, в котором денежные средства переводятся с одного счета на другой, в одном счете кредитуется сумма в таблице базы данных, а в другом счете в то же самое время дебетуется та же сумма в другой таблице базы данных. Так как компьютеры подвержены сбоям, может случиться так, что в одной таблице строка будет обновлена, а в другой — нет.

Транзакции, которые привлекают множество ресурсов, могут снизить параллелизм, если блокировки сохраняются слишком долго. Поэтому следует стараться, чтобы транзакции были как можно более короткими. В том случае, если в транзакции участвует несколько таблиц одной базы данных или одного сервера, явные транзакции в хранимых процедурах часто выполняются лучше. Транзакции можно создавать в хранимых процедурах SQL Server с использованием инструкций Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION или ROLLBACK TRANSACTION. Дополнительные сведения см. в электронной документации по SQL Server.
пример транзакции на удаление
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ALTER PROCEDURE dbo.p_DeleteLogBook
    
    (
    @ID_logbook INT 
    )   
AS
 
 
    BEGIN TRANSACTION
    
        
    
    DELETE FROM Information WHERE ID_logbook=@ID_logbook
    IF(@@ERROR<>0) ROLLBACK TRANSACTION
    
    
    DELETE FROM Address WHERE ID_logbook=@ID_logbook
    IF(@@ERROR<>0)  ROLLBACK TRANSACTION
    
    DELETE FROM Logbook WHERE ID_logbook=@ID_logbook
    IF(@@ERROR<>0) ROLLBACK TRANSACTION
    
    commit TRANSACTION
    RETURN
1
10 / 10 / 1
Регистрация: 27.04.2010
Сообщений: 37
26.05.2010, 23:13  [ТС]
мммм говорю честно половину понял,половину нет.Сам скрипт понял, куда пихать его не понял и как реализовать это всё в моём проекте?(
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
26.05.2010, 23:28
Хранимые процедуры на то и "хранимые" что бы в БД храниться.
А использование в проекте следует почитать в какой-нить книге по ADO.NET. В кратце, для этого следует исползовать или SqlCommand, или DataAdapter. Тема не маленькая, рекомендую почитать книгу.
0
10 / 10 / 1
Регистрация: 27.04.2010
Сообщений: 37
27.05.2010, 00:05  [ТС]
Спасибо постараюсь осилить этот материал.на какие книги мне ориентироваться? книжку брать для новичков или профессионалов?и какую бы вы посоветовали почитать книгу, чтобы я смог разобраться в своей задачи.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
27.05.2010, 00:10
По SQL авторы Мамаев, Виера.

по ADO Сеппа Д. "ADO.NET". оч грамотная книга с хорошими примерами.
1
10 / 10 / 1
Регистрация: 27.04.2010
Сообщений: 37
27.05.2010, 00:15  [ТС]
хмммм попробовал сделать всё это дело через Linq (методом тыка) каким то чудом не понял как но несколько записей пропало с моей БД
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DataClasses1DataContext dc = new DataClasses1DataContext();
            int idd = dataGridView1.CurrentCell.RowIndex + 1;
            var del = from i in dc.tovars
                      where i.ID == idd
                      select i;
            var del2 = from d in dc.zavoz_tovaras
                       where d.ID == idd
                       select d;
            var del3 = from b in dc.sells
                       where b.tovar_ID == idd
                       select b;
            dc.sells.DeleteOnSubmit(del3.First());
            dc.tovars.DeleteOnSubmit(del.First());
            dc.zavoz_tovaras.DeleteOnSubmit(del2.First());
            dc.SubmitChanges();
возник такой вопрос как можно получить ID моего товара который храниться в моей БД(не путать с индексом),через DataGridView? (я думаю вы поймёте что я имел ввиду просто плохо получается описывать свои мысли)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2010, 00:15
Помогаю со студенческими работами здесь

Запретить удаление клавишей delete в edit
Подскажите, как запретить удаление клавишей delete в edit, т. е. чтобы по нажатию на delete ничего не происходило?

Кнопки Edit и Delete для GridView
Ситауция такая. Имею ГридВью grd_rcpt, тут вот я присваиваю ему ДатаСет следующим образом int lst_id =...

Динамический GridView с Edit, Delete, Insert
Всем доброго времени суток. Второй день не могу решить такую проблему: Есть база данных на MS SQL, есть на веб форме GridView,...

Запрос Delete из DataGridView
Доброе утро! Подскажите пожалуйста, как правильно написать запрос на удаление и обновление базы. Есть таблица...

запрос delete из datagridview
Здравствуйте, помогите решить проблему пожалуйста! Вылетает ошибка при запросе на удаление. Необработанное исключение типа...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru