Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523

Не сохраняются изменения в базе данных MySQL

25.03.2015, 19:56. Показов 4205. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, имеется класс подключения к базе данных:
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
 
namespace ARM_System_Administrator.Classes
{
    public class ConnectorSQL
    {
        public MySqlConnection con; //Строка подключенияы
        public MySqlCommandBuilder CommandBuilder;//Для соединения с базой, а если честно вообще хз
        public MySqlDataAdapter dataAdapter; //Для загрузки, сохранения изменения данныз в таблице
 
        public DataTable dataTable; //Для выгрузки таблицы
 
        public BindingSource binSource = new BindingSource();//Для связки с таблицей
 
        public BindingSource binSourceAgregate = new BindingSource();
             
        public BindingSource binSourceZayavka = new BindingSource();
 
        //Процедура коннекта к базе
        public bool Connection(string Connection)
        {        
            try
            {
                con = new MySqlConnection(Connection);
                con.Open();                
            }
            catch
            {
                return false;
            }
            return true;
        }
 
        //Процедура закрытия коннекта
        public bool CloseConnection()
        {
            con.Close();
            return true;
        }
 
        //Вернет true, если есть записи
        public bool QueryToBool(string queryString)
        {
            dataTable = new DataTable();
            MySqlCommand com;
            MySqlDataReader dataReader;
            com = new MySqlCommand(queryString, con);
            try
            {
                dataReader = com.ExecuteReader();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
                return false;
            }
            if (dataReader.HasRows)
            {
                dataTable.Load(dataReader);
 
                dataReader.Close();
                com.Dispose();
                return true;
            }
            dataReader.Close();
            com.Dispose();
            return false;
        }
 
        //Процедура для агрегатных запросов
        public string AgregateQueryToDataGrid(string queryString)
        {
            string resultQuery = "";
            MySqlCommand com;
            MySqlDataReader dataReader;
            com = new MySqlCommand(queryString, con);
            try
            {
                dataReader = com.ExecuteReader();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
                return resultQuery;
            }
 
            dataReader.Read();
            resultQuery = dataReader.GetString(0); //Invalid attempt to access a field before calling Read()
 
            dataReader.Close();
            com.Dispose();
            return resultQuery;
        }
 
        //Процедура вывода в комбо бокса столбца таблицы
        public bool QueryToComboBox(string queryString, ComboBox comboBox, string Name_Column)
        {
            dataTable = new DataTable();
            MySqlCommand com;
            MySqlDataReader dataReader;
            com = new MySqlCommand(queryString, con);
            try
            {
                dataReader = com.ExecuteReader();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
                return false;
            }
            if (dataReader.HasRows)
            {
                dataTable.Load(dataReader);
                comboBox.DataSource = dataTable;
                comboBox.DisplayMember = Name_Column;
 
                dataReader.Close();
                com.Dispose();
                return true;
            }
            dataReader.Close();
            com.Dispose();
            return false;
        }
        
        //Процедура подтверждения изменений в таблице
        public void SaveTable()
        {
            try
            {
                CommandBuilder = new MySqlCommandBuilder(dataAdapter);
                dataAdapter.Update(dataTable);
                MessageBox.Show("Информация сохранена", "Сохранение", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 
        public void LoadTable(string queryString, BindingSource binSource, DataGridView DataGrid, BindingNavigator Navigator)
        {
            dataAdapter = new MySqlDataAdapter(queryString, con);
            dataTable = new DataTable();
            dataAdapter.Fill(dataTable);
            binSource.DataSource = dataTable;
            Navigator.BindingSource = binSource;
            DataGrid.DataSource = binSource;
        }
    }
}
И конкретно две процедуры LoadTable и SaveTable, про которые сейчас и пойдет речь. Имеются две программы, причем одна диплом, вторая просто левый проект, так вот, в левой проекте, весь код представлен на 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
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
 
        MySqlConnection conn;
        MySqlDataAdapter adapter;
        DataTable dt;
        BindingSource binSource1 = new BindingSource();
        BindingSource binSource2 = new BindingSource();
        MySqlCommandBuilder CommandBuilder;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            conn = new MySqlConnection("Database=arm_sis_admin;Server=127.0.0.1;UserId=root;Password= ");
            conn.Open();
        }
 
        public void LoadTable(string queryString, BindingSource binSource, DataGridView DataGrid, BindingNavigator Navigator)
        {
            adapter = new MySqlDataAdapter(queryString, conn);
            dt = new DataTable();
            adapter.Fill(dt);
            binSource.DataSource = dt;
            Navigator.BindingSource = binSource;
            DataGrid.DataSource = binSource;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (tabControl1.SelectedTab == tabPage1)
            {
                LoadTable("SELECT * FROM Param_sis_blokov", binSource1, dataGridView1, bindingNavigator1);
            }
            if (tabControl1.SelectedTab == tabPage2)
            {
                LoadTable("SELECT * FROM Param_mishek", binSource2, dataGridView2, bindingNavigator1);
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
            CommandBuilder = new MySqlCommandBuilder(adapter);
            adapter.Update(dt);
 
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            conn.Close();
        }
    }
}
Проблема в следующем, что в моем дипломе, точно такой же код, просто отказывается работать, загрузить данные то он загрузил, а вот сохранять изменения в таблице просто напрочь отказывается...
Алгоритм работы диплома таков:
1. Загружается окно приветствия, в это время из конфиг файла читается адрес к базе и серверу, если удачно, то показываем окно входа, иначе предлагаем настроить соединение.
2. После входа под админом или преподавателем, показывается главная форма, с вкладками. Переходя по вкладкам происходят запросы на загрузку формы.
3 К каждой таблице привязываю свой BindingSource.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2015, 19:56
Ответы с готовыми решениями:

Не сохраняются изменения в базе данных
Привет всем. Есть класс NoteBook public class NoteBook { public string ConnectionString { get; set; } ...

Не сохраняются изменения в базе данных
Следующая проблема: есть база данных MS Acсess. надо внести изменения в бд в рантайм режиме вот код который не работает хотя должен ...

Не сохраняются изменения в базе данных
Доброго времени суток. Столкнулся с проблемой несохранения изменений в базе данных. Читал похожие темы, в том числе и на этом форуме -...

20
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
26.03.2015, 18:13  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
ладно, мне пора идти, если хотите со мной еще пообщаться, то добавляйтесь в скайп - g1endor (там на аве заяц полу-мертвый)
Уже)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2015, 18:13

Изменения не сохраняются в базе данных
Доброго времени суток. У меня не сохраняются изменения, внесенные в локальную базу данных. Прочитал о похожих проблемах на разных форумах,...

Не сохраняются изменения в базе данных
Огромный привет обитателям этого форума. У меня возникла проблема с обновлением базы данных, обрисую как должна работать программа. Имеется...

Не сохраняются изменения в базе данных после запуска метода Update класса TableAdapter
В принципе, проблема изложена в названии темы. Я самоучка, делаю всё так как сказано в учебном пособии (прилагаю его в качестве вложения)...

Изменения в базе данных не сохраняются
Здравствуйте. Я начал делать программу-регистрационный лист для соревнований, где сохраняются команды. Программа устроена следующим...

Не сохраняются изменения в базе данных
procedure TFCreateUser.BUserCreateClick(Sender: TObject); begin MySQLQ.SQL.Text:='insert into users (Login,Password) values (' ...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru