Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 30

Не заполняет таблицу БД

22.04.2019, 17:06. Показов 3028. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Снова у меня возникла проблема. Сделал все по инструкции,однако при тестировании программы, поля таблицы не заполняются. Подскажите где искать проблему.
Суть действий такая:
1)выбираем в 5 таблицах строки
2)жмем кнопку добавить
3)запись должна появится в таблице отчет.
Однако третий пункт не происходит, причем, никаких ошибок не возникает, работает все так, будто кнопка просто не срабатывает. Ниже код связанный с этим действием.
Форма 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
private void button2_Click(object sender, EventArgs e)
        {
            string CommandText;
            string num_per, ID_M, ID_B, ID_D, ID_A, ID_V;
            int row;
            Form2 f = new Form2(); // создали новую форму
 
            if (f.ShowDialog() == DialogResult.OK)
            {
                // добавляем данные
                // Номер перевозки
                if (f.textBox1.Text == "") num_per = "0";
                else num_per = f.textBox1.Text;
                // добавляем ID_Marshrut
                row = f.dataGridView1.CurrentCell.RowIndex; // взяли строку с dataGridView1
                ID_M = Convert.ToString(f.dataGridView1[0, row].Value);
                // добавляем ID_Bilet
                row = f.dataGridView2.CurrentCell.RowIndex; // взяли строку с dataGridView2
                ID_B = Convert.ToString(f.dataGridView2[0, row].Value);
                // добавляем ID_Dispetcher
                row = f.dataGridView3.CurrentCell.RowIndex; // взяли строку с dataGridView3
                ID_D = Convert.ToString(f.dataGridView3[0, row].Value);
                // добавляем ID_Avtobus
                row = f.dataGridView4.CurrentCell.RowIndex; // взяли строку с dataGridView4
                ID_A = Convert.ToString(f.dataGridView4[0, row].Value);
                // добавляем ID_Voditel
                row = f.dataGridView5.CurrentCell.RowIndex; // взяли строку с dataGridView5
                ID_V = Convert.ToString(f.dataGridView5[0, row].Value);
                // формируем CommandText
                CommandText = "INSERT INTO [Отчет] (Дата, ID_Zayavka, ID_Naryad, ID_Dispetcher, ID_Job, ID_Monter) " +
                "VALUES (" + num_per + ", " + ID_M + ", " + ID_B + ", " +
                         ID_D + ", " + ID_A + ", " + ID_V + ")";
                // выполняем SQL-команду
                My_Execute_Non_Query(CommandText);
                // перерисовываем dataGridView1
                button1_Click(sender, e);
            }
        }
Форма 2:
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
        private void Get_Table(string table_name, int num_dG)
        {
            Form1 f1 = new Form1();
            string CommandText = "SELECT * FROM ";
            CommandText += table_name;
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(CommandText, f1.ConnectionString);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds, table_name);
            if (num_dG == 1) dataGridView1.DataSource = ds.Tables[table_name].DefaultView;
            if (num_dG == 2) dataGridView2.DataSource = ds.Tables[table_name].DefaultView;
            if (num_dG == 3) dataGridView3.DataSource = ds.Tables[table_name].DefaultView;
            if (num_dG == 4) dataGridView4.DataSource = ds.Tables[table_name].DefaultView;
            if (num_dG == 5) dataGridView5.DataSource = ds.Tables[table_name].DefaultView;
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
            Get_Table("Заявка", 1);
            Get_Table("Наряд", 2); 
            Get_Table("Монтер", 3);
            Get_Table("Работа", 4);
            Get_Table("Диспетчер", 5);
            comboBox1.SelectedIndex = 0;
            comboBox2.SelectedIndex = 0;
            dataGridView1.Columns[0].Visible = false;
            dataGridView2.Columns[0].Visible = false;
            dataGridView3.Columns[0].Visible = false;
            dataGridView4.Columns[0].Visible = false;
            dataGridView5.Columns[0].Visible = false;
        }
        private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            row = dataGridView1.CurrentCell.RowIndex;
            label2.Text = "Заявка - " + "№" + Convert.ToString(dataGridView1[1, row].Value) +
                "/" + Convert.ToString(dataGridView1[2, row].Value) +
                "/" + Convert.ToString(dataGridView1[3, row].Value) +
                "/" + Convert.ToString(dataGridView1[4, row].Value) +
                "/" + Convert.ToString(dataGridView1[7, row].Value) +
               " - " + Convert.ToString(dataGridView1[8, row].Value);
        }
 
        private void dataGridView2_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            row = dataGridView2.CurrentCell.RowIndex;
            label3.Text = "Наряд: ФИО абонента" + Convert.ToString(dataGridView2[1, row].Value) +
               " / " + Convert.ToString(dataGridView2[2, row].Value) +
               " / " + Convert.ToString(dataGridView2[3, row].Value) +
               " / " + Convert.ToString(dataGridView2[4, row].Value) +
               " / " + Convert.ToString(dataGridView2[5, row].Value) +
               " / " + Convert.ToString(dataGridView2[6, row].Value);
        }
 
        private void dataGridView3_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            row = dataGridView3.CurrentCell.RowIndex;
            label4.Text = "Монтер: " + Convert.ToString(dataGridView3[1, row].Value);
        }
 
        private void dataGridView4_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            row = dataGridView4.CurrentCell.RowIndex;
            label5.Text = "Работы:Адрес" + Convert.ToString(dataGridView4[1, row].Value) +
               " / " + Convert.ToString(dataGridView4[2, row].Value) +
               " / " + Convert.ToString(dataGridView4[3, row].Value) +
               " / " + Convert.ToString(dataGridView4[4, row].Value);
        }
 
        private void dataGridView5_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            row = dataGridView5.CurrentCell.RowIndex;
            label6.Text = "Диспетчер: " + Convert.ToString(dataGridView5[1, row].Value);
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.No;
        }
        private void button4_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
        }
    }
Миниатюры
Не заполняет таблицу БД  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2019, 17:06
Ответы с готовыми решениями:

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

Почему не заполняет всю таблицу?
Есть класс, который должен выводить все записи из базы в таблицу, но почему-то он оставляет первую колонну пустую(ID - primary key) /* ...

Не заполняет таблицу в exe через программированный запрос
Не заполняет таблицу в exe через программированный запрос. Как сделать правильно exe файл? программа: set safety off SELECT...

33
0 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 30
25.04.2019, 18:18  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от asn31337 Посмотреть сообщение
Запрос на выборку не проходит. В результате не найдено ни одной записи. Сейчас вот пытаюсь разобраться в чем дело...

Добавлено через 1 минуту

Ну это действительно странно... Т.к. у меня код работает без каких-либо исправлений... Только путь к БД исправил.
беда,с базой разобрался кстати, он мне изменяет содержание базы почему то в корневом каталоге а не в выходном. т.е. изменгнения идут олько в базе которая в папке obj лежит, а та которая в debag нет изменений
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
25.04.2019, 18:22
Цитата Сообщение от Daahaakaa Посмотреть сообщение
изменгнения идут олько в базе которая в папке obj лежит
Аааа! Ну я то у себя путь подправил, чтобы заработало... А у тебя в строке подключения видать на другой файл ссылка была)))
0
0 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 30
25.04.2019, 18:24  [ТС]
Цитата Сообщение от asn31337 Посмотреть сообщение
Аааа! Ну я то у себя путь подправил, чтобы заработало... А у тебя в строке подключения видать на другой файл ссылка была)))
ща путь поправил, совпадает с подключением, только вот в папке дебаг изменений нет, а в корневом все добавляется. чудеса.

Ладно,это можно будет обыграть, вопрос в другом, почему таблица не выводит данные в программе
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
25.04.2019, 19:38
Цитата Сообщение от Daahaakaa Посмотреть сообщение
почему таблица не выводит данные в программе
Короче, фиг его знает, в чем дело...
Если делать выборку только из таблиц [Отчет], [Заявка], [Наряд], то все норм выводится. Если же добавить еще монтера, то таблица пустая...
Не могу врубиться в чем дело...
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
25.04.2019, 19:44
Чем то запросу не нравится именно таблица "монтер"... Т.к. если делать выборку, например, из таблиц [Отчет], [Заявка], [Монтер], то итог тот же - пустая таблица.
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
25.04.2019, 19:54
Создал в БД еще одну таблицу [Monter] и подсунул ее в запрос. Все заработало...

Мораль, по ходу дела, такова - не нужно использовать кириллицу в программировании... Хотя, конечно, возможно, и не в кириллице дело...
0
0 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 30
26.04.2019, 04:48  [ТС]
Цитата Сообщение от asn31337 Посмотреть сообщение
Создал в БД еще одну таблицу [Monter] и подсунул ее в запрос. Все заработало...
Вложение 1033076
Мораль, по ходу дела, такова - не нужно использовать кириллицу в программировании... Хотя, конечно, возможно, и не в кириллице дело...
Можешь скинуть архив с исправлениями, покопаюсь в своих базе и коде, поищу проблему
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
26.04.2019, 11:01
Цитата Сообщение от Daahaakaa Посмотреть сообщение
Можешь скинуть архив с исправлениями
Скинуть то могу... Только я не правил ничего. Код у тебя рабочий. Я только путь к базе заменил, т.к. у тебя был полный указан и у меня, соответственно, такого пути не было. Ну и для теста добавил таблицу и заменил на нее в запросе.
Ну вот проект RT.zip, на всякий случай...
0
0 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 30
26.04.2019, 15:29  [ТС]
Цитата Сообщение от asn31337 Посмотреть сообщение
Скинуть то могу... Только я не правил ничего. Код у тебя рабочий. Я только путь к базе заменил, т.к. у тебя был полный указан и у меня, соответственно, такого пути не было. Ну и для теста добавил таблицу и заменил на нее в запросе.
Ну вот проект Вложение 1033214, на всякий случай...
Что ты сделал, оно работает!?
0
0 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 30
26.04.2019, 17:11  [ТС]
и раз ты такой волшебник, подскажи, почему прога при удалении некоторых записей выкидывает такую ошибку. смотри скрин.
Миниатюры
Не заполняет таблицу БД  
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
27.04.2019, 13:53
Цитата Сообщение от Daahaakaa Посмотреть сообщение
при удалении некоторых записей выкидывает такую ошибку
подозреваю, что "некоторые" записи - это последние в таблице... Само собой в этом случае будет исключение, т.к. index_old будет указывать на элемент, которого не существует
0
0 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 30
27.04.2019, 17:36  [ТС]
Цитата Сообщение от asn31337 Посмотреть сообщение
подозреваю, что "некоторые" записи - это последние в таблице... Само собой в этом случае будет исключение, т.к. index_old будет указывать на элемент, которого не существует
как то обмануть можно?
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
27.04.2019, 17:55
Цитата Сообщение от Daahaakaa Посмотреть сообщение
как то обмануть можно?
Очевидно, нужно делать проверку на количество записей в таблице. Если таблица пустая, то не выполнять код.
0
0 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 30
28.04.2019, 07:59  [ТС]
Цитата Сообщение от asn31337 Посмотреть сообщение
Очевидно, нужно делать проверку на количество записей в таблице. Если таблица пустая, то не выполнять код.
Проблема заключается в том, что иногда этот индекс олд вылетает когда в таблице больше двух записей. Например записи три, удаляю одну, и выскакивает эта ошибка

Добавлено через 45 минут
Цитата Сообщение от asn31337 Посмотреть сообщение
Очевидно, нужно делать проверку на количество записей в таблице. Если таблица пустая, то не выполнять код.
Все,обманул эту тему. Спасибо за советы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.04.2019, 07:59

Программа не заполняет первую таблицу. А во второй выводит неправильные значения
Здравствуйте. Программа не заполняет первую таблицу. А во второй выводит неправильные значения. Подскажите, пожалуйста, где и какая ошибка....

Скрипт, который очищает одну таблицу и заполняет ее данными другой таблицы
В SQL я ноль :( помогите пожалуйста написать скрипт который очищает одну таблицу и заполняет ее даными другой таблицы. Таблицы полностью...

Создать приложение, которое в момент его запуска заполняет таблицу 5x5 случайными числами от 10 до 40
4. Создайте приложение, которое в момент его запуска заполняет таблицу 5x5 случайными числами от 10 до 40. Таблица не должна иметь...

Сделать таблицу умножения, таблицу сложения, а также таблицу возведения в степень
Помогите написать код) Сделать таблицу умножения, таблицу сложения, а также таблицу возведения в степень. Функция:...

При Движении не заполняет
Здравствуйте, тухлыми помидорами плиз не бросать. Делаю с нуля, личный бюджет на 1С. Вопрос вот в чем: Справочники...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru