Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
3 / 3 / 0
Регистрация: 18.05.2014
Сообщений: 140
MS Access

Обновление базы через datagrid

02.06.2015, 20:35. Показов 4019. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, есть база в access подключенная к программе через datagridviw
Можно ли как то сделать так ?
что если в datagridviw изменяю что то, то при нажатии кнопки "сохранить" изменения сохранялись и записывались в базу.
Спасибо!

Добавлено через 2 часа 43 минуты
или можно как то через update изменять данные?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void button3_Click(object sender, EventArgs e)
        {
            using (cn = new OleDbConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();
                    strSQL = "UPDATE (имя таблицы)....//// дальше не знаю что написать...
 
                    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
                    if (cmd.ExecuteNonQuery() == 1)
                        MessageBox.Show("Запись успешно Обновленна!");
                    cn.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message);
                }}}
Добавлено через 7 часов 57 минут
люди подскажи как все таки сделать обновление
Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.06.2015, 20:35
Ответы с готовыми решениями:

Обновление MySQL базы через datagridView, нарушение параллелизма
Иммется подключение к БД mysql, с помощью этой кнопки получаю результаты. Все ок. DataTable dt; MySqlDataAdapter...

Обновление DataGrid
Привет всем! Подскажите пожалуйста как сделать при нажатии на кнопку обновить данные в DataGrid?

Автоматическое обновление DataGrid
Доброго времени суток, Подскажите пожалуйста как сделать автоматическое обновление DataGridView через определенный интервал времени?

36
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.06.2015, 21:08
Цитата Сообщение от iskilz Посмотреть сообщение
Можно ли как то сделать так ?
Можно.
Цитата Сообщение от iskilz Посмотреть сообщение
люди подскажи как все таки сделать обновление
В архиве проект с примером обновления таблицы. Используйте.
Вложения
Тип файла: rar Access_DataGrid.rar (57.6 Кб, 54 просмотров)
1
3 / 3 / 0
Регистрация: 18.05.2014
Сообщений: 140
03.06.2015, 08:56  [ТС]
Спасибо
у вас понял как работает а у себя не могу понять как сделать
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.06.2015, 09:09
Цитата Сообщение от iskilz Посмотреть сообщение
у себя не могу понять как сделать
Дайте образец вашей базы и расскажите, как должно работать.
0
3 / 3 / 0
Регистрация: 18.05.2014
Сообщений: 140
03.06.2015, 09:51  [ТС]
смотрите
у меня база access подключенная к datagridview

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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
namespace sklad
{
    public partial class oformlenie2 : Form
    {
        OleDbConnectionStringBuilder bldr;
        OleDbConnection cn;
        string strSQL;
 
        public oformlenie2()
        {
            InitializeComponent();
            bldr = new OleDbConnectionStringBuilder();
            bldr.Provider = "Microsoft.Jet.OLEDB.4.0";
            bldr.DataSource = @"D:\skladd.mdb";
            using (cn = new OleDbConnection(bldr.ConnectionString))
            this.Load += new EventHandler(oformlenie2_Load);
            btnUpdate.Click += new EventHandler(btnUpdate_Click);
            {
                try
                {
                    cn.Open();
                    strSQL = "SELECT KodTovara FROM Tovari";
                    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
                    OleDbDataReader rdr1 = cmd.ExecuteReader();
 
 
 
                    cn.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
 
        private void oformlenie2_Load(object sender, EventArgs e)
        {
 
        }
 
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string nameTable = "";
            string strSQL;
            switch (comboBox1.SelectedIndex)
            {
                case 0: nameTable = " Tovari "; break;
 
 
 
            }
            strSQL = "SELECT * FROM " + nameTable + ";";
            using (cn = new OleDbConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();
                    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
                    OleDbDataReader rdr = cmd.ExecuteReader();
                    DataTable t = new DataTable();
                    t.Load(rdr);
                    dataGridView1.DataSource = t.DefaultView;
                    cn.Close();
 
 
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            using (cn = new OleDbConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();
                    strSQL = "DELETE FROM Tovari WHERE KodTovara=" + dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();
 
                    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
                    if (cmd.ExecuteNonQuery() == 1)
                        MessageBox.Show("Запись успешно добавлена!");
                    cn.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message);
                }
 
 
            }
        }
 
      
    }
}
на этой форме у меня показ данных из бд и удаление записи
и нужно сделать кнопку обновления
допустим редактирую какие то данные показанные в датагрид
нажимаю на кнопку обновить и данные изменяются в базе.

Добавлено через 18 минут
в sql знаю как запрос сделать на обновление а в программе застрял
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.06.2015, 10:05
Цитата Сообщение от iskilz Посмотреть сообщение
у меня база access подключенная к datagridview
iskilz, я же вам русским языком сказал: дайте образец БД и опишите точно задачу: что и как должно работать.
И да, строки с 85 по 100, обратите внимание - у вас команда об удалении, а вы сообщаете о добавлении записи. Не странно это?
1
3 / 3 / 0
Регистрация: 18.05.2014
Сообщений: 140
03.06.2015, 10:32  [ТС]
простите, там опечатка про добавление
не понял
в смысле образец БД
вам базу скинуть?
как должно работать?
В datagridview отображаются данные базы
в столбцах записи,
как сделать что б если изменяю что то в дата грит то при нажатии кнопки обновить изменения сохранялись?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.06.2015, 11:31
iskilz, в моем примере показано обновление. Сколько у вас таблиц в БД? Одна? Или несколько?
1
3 / 3 / 0
Регистрация: 18.05.2014
Сообщений: 140
03.06.2015, 11:38  [ТС]
в базе 2 таблицы
но обновлять нужно только одну
я просмотрел ваш пример
но не очень могу разобраться так как не большой опыт работы...
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.06.2015, 11:59
Цитата Сообщение от iskilz Посмотреть сообщение
не очень могу разобраться
Вам сделать пример с образцом по вашей таблице?
1
3 / 3 / 0
Регистрация: 18.05.2014
Сообщений: 140
03.06.2015, 12:24  [ТС]
если вас не затруднит
буду очень благодарен!
skladd.rar
вот тут моя база и проект, наверно понадобится
скинул архивом по другому не кидается на форум
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.06.2015, 12:40
Цитата Сообщение от iskilz Посмотреть сообщение
если вас не затруднит
Думаю нет. Не прямо сейчас, в процессе дня устроит?
1
3 / 3 / 0
Регистрация: 18.05.2014
Сообщений: 140
03.06.2015, 12:47  [ТС]
да спасибо!
мне не горит
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.06.2015, 17:56
iskilz, вот вам пример. Я сделал свою БД, по типу вашей, с одной таблицей.
И да, НИКОГДА не используйте транслит. Читать неприятно.
Вложения
Тип файла: rar ProductsStore.rar (52.9 Кб, 31 просмотров)
1
3 / 3 / 0
Регистрация: 18.05.2014
Сообщений: 140
03.06.2015, 18:10  [ТС]
Спасибо вам!
0
0 / 0 / 0
Регистрация: 06.06.2015
Сообщений: 1
06.06.2015, 17:43
insite2012, а как сделать обновление таблицы базы sql
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.06.2015, 21:43
Цитата Сообщение от gsv-v Посмотреть сообщение
а как сделать обновление таблицы базы sql
По тому же самому образцу, изменив провайдера и строку подключения к БД.
0
 Аватар для dvatt
9 / 9 / 1
Регистрация: 19.01.2015
Сообщений: 58
08.06.2015, 14:52
insite2012, Здравствуйте. Делаю по Вашему примеру, но с той лишь разницей, что таблиц несколько(другая таблица отображается в гридвью при нажатии кнопки). Столкнулся с проблемой при сохранении.



Кликните здесь для просмотра всего текста
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
class DBOperator
    {
        static readonly string CONNECT_STRING = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}",
            Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "defDBmain.accdb"));
        // detskiy sad
        public static DataTable GetSadFromBase()
        {
            DataTable dt = new DataTable("Детский_сад");
            string selectCmd = "SELECT * FROM Детский_сад";
            using (OleDbDataAdapter adapter = new OleDbDataAdapter(selectCmd, CONNECT_STRING))
            {
                adapter.Fill(dt);
            }
            return dt;
        }
        public static void UpdateSadIntoBase(DataTable dt)
        {
            string selectCmd = "SELECT * FROM Детский_сад";
            using (OleDbDataAdapter adapter = new OleDbDataAdapter(selectCmd, CONNECT_STRING))
            {
                OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
                adapter.Update(dt);
            }
        }


код кнопки

Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable runDT = dGridViewMain.DataSource as DataTable;
               
                DBOperator.UpdateSadIntoBase(runDT);
                dGridViewMain.DataSource = null;
                dGridViewMain.DataSource = DBOperator.GetSadFromBase();
            }
 
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


Подскажите, пожалуйста, в чем может быть проблема.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
08.06.2015, 14:58
Цитата Сообщение от dvatt Посмотреть сообщение
в чем может быть проблема.
dvatt, попробуйте сделать названия столбцов без пробелов (и лучше вообще на английском).
Либо, если таблиц несколько, в класс работы с БД нужно будет еще передать имя той таблицы, с которой вы работаете в настоящий момент.
1
 Аватар для dvatt
9 / 9 / 1
Регистрация: 19.01.2015
Сообщений: 58
08.06.2015, 15:15
insite2012, спасибо. убрал пробелы и все заработало.

Добавлено через 13 минут
insite2012, Скажите, если в кнопке "сохранить" условиями разделять выполнения, то это будет как-то так?
Кликните здесь для просмотра всего текста

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
try
            {
                DataTable runDT = dGridViewMain.DataSource as DataTable;
                if (dGridViewMain.DataSource == DBOperator.GetSadFromBase())
                {
                    DBOperator.UpdateSadIntoBase(runDT);
                    dGridViewMain.DataSource = null;
                    dGridViewMain.DataSource = DBOperator.GetSadFromBase();
                    MessageBox.Show("Данные успешно обновлены!");
                }
                else
                {
                    return;
                }
                if (dGridViewMain.DataSource == DBOperator.GetPersonalSadaFromBase())
                {
                    DBOperator.UpdateSadIntoBase(runDT);
                    dGridViewMain.DataSource = null;
                    dGridViewMain.DataSource = DBOperator.GetPersonalSadaFromBase();
                    MessageBox.Show("Данные успешно обновлены!");
                }
                else
                {
                    return;
                }


Проблема в том, что так сохранения не происходит. Получается, что условие неправильно. Какое должно быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2015, 15:15
Помогаю со студенческими работами здесь

Обновление DataGrid на другой форме
Суть вопроса проста. Есть приложение с несколькими формами на WPF, шаблон Modren UI ( формы как бы листаются и содержаться в обдой...

Обновление DataGrid после внесения данных в БД
Здравствуйте. Имеется база данных Access mdb и программа на c# WinForms для ввода значений в эту базу. БД подключена через MS Jet 4.0....

Обновление DataGrid после добавления данных в БД
Здравствуйте, проблемы с обновлением DataGrid, есть основная форма: using System; using System.Collections.Generic; using...

Обновление DataGrid при добавлении новых данных
Здравствуйте. Возникла следующая проблема есть DataGrid который заполняться из БД, по нажатии на кнопку открывается форма ввода данных,...

Привязка данных из таблицы БД к datagrid и последующее обновление
Добрый день, изучаю ADO.NET так что вопрос довольно простой для опытных пользователей. Возник академический интерес вот в такой реализации....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru