Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
7 / 6 / 1
Регистрация: 24.05.2021
Сообщений: 67

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

31.05.2021, 14:02. Показов 1722. Ответов 6

Студворк — интернет-сервис помощи студентам
У меня есть приложение "Расписание занятий" (скрин 1) с подключенной базой данных из access. База выводится в само приложение через AdvancedDataGridView. В приложении по нескольким столбцам, а именно (предмет и преподаватели) стоит комбобокс. Из этого выпадающего списка выпадают предметы, которые мы занесли в коллекцию столбца комбобокса (скрин 2-3). При включенном приложении, если выбрать из выпадающего списка нужный нам предмет или преподователя, и нажав кнопку "обновить" [код:
C#
1
2
3
4
5
private void button1_Click(object sender, EventArgs e)
        {
            this.т191_20TableAdapter.Update(this.raspDataSet.191_20);
 
        }
]- данные обновляются и сохраняются в программе и самой базе данных.
Передо мной стоит задача создать еще одну кнопку, и чтобы по нажатии перекидывало на новую форму. На этой форме Должен быть список всех предметов из тех самых коллекций из ComboBox и возможность внести туда новую запись. Чтобы пользователь мог это делать прямо из приложения, не прибегая к программному коду. Помогите, люди, не представляю как это сделать.
Миниатюры
Как сделать добавление записей в бд из самого приложения   Как сделать добавление записей в бд из самого приложения   Как сделать добавление записей в бд из самого приложения  

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2021, 14:02
Ответы с готовыми решениями:

Как в интерфейсном режиме сделать создание, добавление, удаление записей?
Здравствуйте. У меня вопрос по БД SQLite. Писала программу с использованием этой БД на Delphi, а теперь возникла необходимость реализовать...

Как сделать, чтобы в форме при добавление новых записей эти записи добавлялись в базу данных
Как сделать что бы в форме при добавление новых записей эти записи добавлялись в базу данных

В массиве записей определить самого слабого и самого сильного студента
Задание: Описать тип записи - сведения об успешности обучения студентов по 2 предметам. Сформировать массив, состоящий не менее из...

6
7 / 6 / 1
Регистрация: 24.05.2021
Сообщений: 67
31.05.2021, 14:07  [ТС]
Ну вот добавил кнопку и форму, что дальше делать - не представляю. Скрины кидаю, чтобы name было видно.
Миниатюры
Как сделать добавление записей в бд из самого приложения   Как сделать добавление записей в бд из самого приложения  
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
31.05.2021, 14:41
Цитата Сообщение от 4riNord Посмотреть сообщение
Ну вот добавил кнопку и форму, что дальше делать - не представляю
Дальше, размещаете контролы на форме2 и пишите запрос на добавление данных
SQL
1
var query = INSERT INTO(перечисляем колонки через запятую, которые будут вноситься)VALUES(Значение которое будет вносится)
C#
1
2
3
4
5
6
7
8
9
10
11
public  string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dataBase.mdb;";
private OleDbConnection  myConnection = new OleDbConnection(connectString);
 
    // открываем соединение с БД
    myConnection.Open();
 
   // создаем объект OleDbCommand для выполнения запроса к БД MS Access
    OleDbCommand command = new OleDbCommand(query, myConnection);
 
    // выполняем запрос к MS Access
    command.ExecuteNonQuery();
Для более удобного кода, можете писать с параметрами запрос.
C#
1
command.Parameters.Add("@Название колонки","Значение");
0
7 / 6 / 1
Регистрация: 24.05.2021
Сообщений: 67
01.06.2021, 00:48  [ТС]
"Контролы" это что?
0
7 / 6 / 1
Регистрация: 24.05.2021
Сообщений: 67
01.06.2021, 00:57  [ТС]
Форму сделал, переход по кнопке добавил. Что дальше? Куда ваш код писать?
Миниатюры
Как сделать добавление записей в бд из самого приложения  
Изображения
 
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
01.06.2021, 08:48
Цитата Сообщение от 4riNord Посмотреть сообщение
"Контролы" это что?
элемент управления пользовательского ввода/вывода информации
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.06.2021, 13:15
4riNord, Вы сделали много ошибок, отчего и запутались.
1. Ошибки в БД.
- Нельзя все хранить в одной таблице. В Вашем случае нужны такие таблицы:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE TABLE Teacher (
   TE_Id INT IDENTITY(1,1) PRIMARY KEY,
   TE_Name VARCHAR(MAX) NOT NULL
)
CREATE TABLE Subject (
   SU_Id INT IDENTITY(1,1) PRIMARY KEY,
   SU_Name VARCHAR(MAX) NOT NULL
)
CREATE TABLE SchollDays
   SD_Id INT IDENTITY(1,1) PRIMARY KEY,
   SD_Quarter INT NOT NULL,  -- Четверть  
   SD_Year INT NOT NULL, -- Год
   SD_Month INT NOT NULL, -- Месяц
   SD_Day INT NOT NULL -- День
)
CREATE TABLE TimeTable (
   TT_Id INT IDENTITY(1,1) PRIMARY KEY,
   TT_SD_Id INT REFERENCES SchoolDays(SD_Id),
   TT_TE_Id INT REFERENCES Teacher(TE_Id),
   TT_SU_Id INT REFERENCES Subject(SU_Id),
   TT_BeginTime DATETIME NOT NULL
)
Для извлечения данных в грид нужно пользоваться запросом
SQL
1
2
3
4
5
6
SELECT TT.Id, TT_BeginTime, TE.TE_Id, TE.TE_Name, SU.SU_Id, SU.SU_Name FROM TimeTable TT
   LEFT JOIN SchoolDays SD ON (SD.SD_Id = TT.TT_SD_Id)
   LEFT JOIN Teacher TE ON (TE.TE_Id = TT.TT_TE_Id)
   LEFT JOIN Subject SU ON (SU.TE_Id = TT.TT_SU_Id)
   WHERE SD.SD_Year = 2021 AND SD_Month = 5   -- Выборка за месяц
   ORDER BY TT_BeginTime     -- сортировка от раннего к позднему
Добавлено через 18 минут
2. Проект. Модель (Не используем никаких ORM)
В корне проекта создаете папку Models, в ней создаете классы:
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
public class Tearcher // Класс "Преподаватели" для отображения и редактирования справочника
{
     public int TE_Id { get; set;}
     public string TE_Name { get; set;}
}
 
public class Subject // Класс "Предметы" для отображения и редактирования справочника
{
     public int SU_Id { get; set;}
     public string SU_Name { get; set;}
}
 
public class SchoolDays // Класс "Учебные дни" для отображения и редактирования учебных дней
{
     public int SD_Id { get; set;}
     public int SD_Quarter { get; set;}
     public int SD_Year { get; set;}
     public int SD_Month { get; set;}
     public int SD_Day { get; set;}
}
 
public class TimeTable // Класс "Расписание" для редактирования расписания
     public int TT_Id  { get; set;}
     public int TT_SD_Id  { get; set;}
     public int TT_TE_Id { get; set;}
     public int TT_SU_Id { get; set;}
     public datetime TT_BeginTime { get; set;}
)
 
public class TimeTableView // Класс "Расписание" для отображения в гриде
     public int TT_Id  { get; set;}
     public datetime TT_BeginTime { get; set;}
     public int TE_Id { get; set;}
     public string TE_Name { get; set;}
     public int SU_Id { get; set;}
     public string SU_Name  { get; set;}
)
Добавлено через 13 минут
2. Проект. Репозиторий
В папке Models создаете еще один класс
public class Repository
// Класс для инкапсуляции методов работы с БД
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
25
26
27
{
     private string ConnectionString =<[I]Строка соединения с Access[/I]>;
     private SqlConnection Conn;
     private string SQLText;
     
     public List<Teacher> DB_FetchTeacher()
     {
     }     
 
     public void DB_InsertTeacher(Teacher teacher)
     {
     }     
 
     public void DB_UpdateTeacher(Teacher teacher)
     {
     }     
 
     public void DB_DeleteTeacher(Teacher teacher)
     {
     }     
     // По аналогии делаем методы для Дней, предметов и расписания
     ...
 
     public List<TimeTableView> DB_FetchTimeTableView(INT YEAR, INT quarter, INT MONTH)
     {
     }
}
Добавлено через 6 минут
Каркас сделан. Теперь из кода приложения должны быть доступны классы модели и репозиторой.
Добавляем строку
C#
1
using <[I]Имя Вашего проекта[/I]>.Models;
в код всех форм, в которых предполагается выборка или модификация моделей-сущностей (таблиц) БД

Теперь в любой форме пишете код для работы с Моделями и репозиторием. При этом ни одна форма ничего не знает о другой и все данные между ними передаются моделями.

Осталось наполнить методы репозитория кодом. Попытайтесь сами.
Будут вопросы - задавайте, всегда готовы помочь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2021, 13:15
Помогаю со студенческими работами здесь

простая база с одним полем (оно же ключ), но много записей. как максимально быстро организовать проверку и добавление пакета новых записей?
есть простейшая БД (с одним полем), состоящая из уникальных строковых ключей, типа: SDPT234ddfs4545FFqsdfs TXB2ZQ5d ...

Сделать возможным корректировку, добавление, удаление и поиск записей
Полный текст: Создать БД «Бухгалтерия», включающую следующую информацию: Ф.И.О. работника, образование, должность, дата поступления на...

БД Ассеs: сделать запрос на добавление, удаление и изменение записей
Дана БД в ассеs. Таблица №\Страна\Сталица. Нужно сделать SQL запрос на добавление, удаление и изменение записей. Помогите пожалуйста.

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru