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

БД гостиничного комплекса

03.05.2022, 21:52. Показов 1098. Ответов 9

Студворк — интернет-сервис помощи студентам
Добрый день, помогите пожалуйста. У меня есть БД гостиничного комплекса нужно при бронировании на одну и ту же дату выбивал "На данное число уже есть бронирование"
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.EntityFrameworkCore;
using System.Dynamic;
 
namespace Hotel
{
    /// <summary>
    /// Логіка взаємодії для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        ApplicationContext db;
        public MainWindow()
        {
            InitializeComponent();
            Load();
        }
       
        public void Load()
        {
            using (db = new ApplicationContext())
            {
                db.Reservations.Load();
                db.RoomNumbers.Load();
                db.ClientLists.Load();
                db.RoomClasses.Load();
                db.Genders.Load();
                dataGridRes.ItemsSource = db.Reservations.Local.ToBindingList();
                dataGridRoom.ItemsSource = db.RoomNumbers.Local.ToBindingList();
                dataGridClient.ItemsSource = db.ClientLists.Local.ToBindingList();
            }
        }
        private void btn_Add_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (db = new ApplicationContext())
                {
                    Gender gender = new Gender
                    {
                        GenderName = tb_GenderGenderName.Text
                    };
                    int? keygender = db.Genders.SingleOrDefault(x => x.GenderName == gender.GenderName)?.IdGender;
                    if (keygender == null)
                    {
                        db.Genders.Add(gender);
                        db.SaveChanges();
                    }
                    ClientList clientList = new ClientList
                    {
                        FullNameClient = tb_ClientFullNameClient.Text,
                        DateOfBirth = DateTime.Parse(datePickerClientDateOfBirth.Text),
                        GenderId = gender.IdGender
                    };
                    if (keygender != null)
                    {
                        clientList.GenderId = (int)keygender;
                        db.SaveChanges();
                    }
                    db.Add(clientList);
                    db.SaveChanges();
                    RoomClass roomClass = new RoomClass
                    {
                        Class = tb_RoomClass.Text
                    };
                    int? keyroomClass = db.RoomClasses.SingleOrDefault(x => x.Class == roomClass.Class)?.IdClass;
                    if (keyroomClass == null)
                    {
                        db.RoomClasses.Add(roomClass);
                        db.SaveChanges();
                    }
                    RoomNumber roomNumber = new RoomNumber
                    {
                        CodeNumber = int.Parse(tb_RoomCodeNumber.Text),
                        RoomClassId = roomClass.IdClass,
                        Price = int.Parse(tb_RoomPrice.Text)
                    };
                    if (keyroomClass != null)
                    {
                        roomNumber.RoomClassId = (int)keyroomClass;
                        db.SaveChanges();
                    }
                    db.Add(roomNumber);
                    db.SaveChanges();
                    Reservation reservation = new Reservation
                    {
                        ClientListId = clientList.IdClient,
                        RoomNumberId = roomNumber.IdRoom,
                        DateReservation = DateTime.Parse(datePickerResDateReservation.Text),
                        DateOfEntry = DateTime.Parse(datePickerResDateOfEntry.Text),
                        DateDeparture = DateTime.Parse(datePickerResDateDeparture.Text)
 
                    };
 
 
 
                    db.Add(reservation);
                    db.SaveChanges();
 
                    Load();
                    MessageBox.Show("Дані додано!");
                    TextClean();
                }
            }catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        void TextClean()
        {
            tb_GenderGenderName.Text = "";
            tb_RoomCodeNumber.Text = "";
            tb_RoomClass.Text = "";
            tb_ClientFullNameClient.Text = "";
            tb_RoomPrice.Text = "";
            datePickerClientDateOfBirth.Text = "";
            datePickerResDateDeparture.Text = "";
            datePickerResDateOfEntry.Text = "";
            datePickerResDateReservation.Text = "";
        }
        private void btn_UpdateReserv_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (db = new ApplicationContext())
                {
                    int IdLib = (dataGridRes.SelectedItem as Reservation).IdReservation;
 
                    Reservation updateRes = (from d in db.Reservations
                                           where d.IdReservation == IdLib
                                           select d).Single();
 
                    updateRes.ClientListId = (dataGridRes.SelectedItem as Reservation).ClientListId;
                    updateRes.RoomNumberId = (dataGridRes.SelectedItem as Reservation).RoomNumberId; 
                    updateRes.DateReservation = (dataGridRes.SelectedItem as Reservation).DateReservation; 
                    
                    updateRes.DateOfEntry = (dataGridRes.SelectedItem as Reservation).DateOfEntry; 
                    updateRes.DateDeparture = (dataGridRes.SelectedItem as Reservation).DateDeparture;
                    
                    db.SaveChanges();
                    Load();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void btn_UpdateRoom_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (db = new ApplicationContext())
                {
                    int IdRoom = (dataGridRoom.SelectedItem as RoomNumber).IdRoom;
                    int IdClass = (dataGridRoom.SelectedItem as RoomNumber).RoomClass.IdClass;
 
                    RoomNumber updateRoom = (from d in db.RoomNumbers
                                             where d.IdRoom == IdRoom
                                             select d).Single();
                    RoomClass updateroomClass = (from d in db.RoomClasses
                                                 where d.IdClass == IdClass
                                                 select d).Single();
                    updateRoom.CodeNumber = (dataGridRoom.SelectedItem as RoomNumber).CodeNumber;
                    updateroomClass.Class = (dataGridRoom.SelectedItem as RoomNumber).RoomClass.Class;
                    updateRoom.Price = (dataGridRoom.SelectedItem as RoomNumber).Price;
                    db.SaveChanges();
                    Load();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void btn_UpdateClient_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (db = new ApplicationContext())
                {
                    int IdClient = (dataGridClient.SelectedItem as ClientList).IdClient;
                    int IdGender = (dataGridClient.SelectedItem as ClientList).Gender.IdGender;
 
                    ClientList updateClient = (from d in db.ClientLists
                                             where d.IdClient == IdClient
                                             select d).Single();
                    Gender updateGender = (from d in db.Genders
                                                 where d.IdGender == IdGender
                                                 select d).Single();
                    updateClient.FullNameClient = (dataGridClient.SelectedItem as ClientList).FullNameClient;                    
                    updateClient.DateOfBirth = (dataGridClient.SelectedItem as ClientList).DateOfBirth;        
                    updateGender.GenderName = (dataGridClient.SelectedItem as ClientList).Gender.GenderName;
                    db.SaveChanges();
                    Load();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void btn_DeleteRes_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (db = new ApplicationContext())
                {
                    Reservation delRes = new Reservation() { IdReservation = int.Parse(tb_DelRes.Text) };
                    db.Reservations.Attach(delRes);
                    db.Reservations.Remove(delRes);
                    db.SaveChanges();
                    Load();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void btn_UpdateRoom1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (db = new ApplicationContext())
                {
                    RoomNumber delRoom = new RoomNumber() { IdRoom = int.Parse(tb_DelRoom.Text) };
                    db.RoomNumbers.Attach(delRoom);
                    db.RoomNumbers.Remove(delRoom);
                    db.SaveChanges();
                    Load();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void btn_DeleteClient_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (db = new ApplicationContext())
                {
                    ClientList delClient = new ClientList() { IdClient = int.Parse(tb_DelClient.Text) };
                    db.ClientLists.Attach(delClient);
                    db.ClientLists.Remove(delClient);
                    db.SaveChanges();
                    Load();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
 
        //private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        //{
        ////    var lib = db.Librarys.Include(p => p.AuthorTb.NameAuthor);
 
        ////    db.Librarys.Load();
        ////    db.Authors.Load();
        ////    dataGrid.ItemsSource = lib.ToList();
        //    if (comboBox.SelectedIndex == 0)
        //    {
        //        try
        //        {
        //            using (db = new ApplicationContext())
        //            {
        //                var comps = db.Reservations.FromSqlRaw("SELECT IdReservation, ClientListId FROM [Reservations]");
 
        //                //var q = db.Reservations.Include(x => x.ClientList).Where(x => x.ClientListId == x.ClientList.IdClient); 
        //                //db.Reservations.Load();
        //                //db.RoomNumbers.Load();
        //                //db.ClientLists.Load();
        //                //db.RoomClasses.Load();
        //                dataGridRes.ItemsSource = comps.ToList();
        //            }
        //        }
        //        catch(Exception ex)
        //        {
        //            MessageBox.Show(ex.Message);
        //        }
        //    }
        //    if (comboBox.SelectedIndex == 1)
        //    {
        //        using (db = new ApplicationContext())
        //        {
        //            db.RoomNumbers.Load();
        //            dataGridRes.ItemsSource = db.RoomNumbers.Local.ToBindingList();
        //        }
        //    }
        //    if (comboBox.SelectedIndex == 2)
        //    {
        //        using (db = new ApplicationContext())
        //        {
        //            db.ClientLists.Load();
        //            dataGridRes.ItemsSource = db.ClientLists.Local.ToBindingList();
        //        }
        //    }
 
 
        //}
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2022, 21:52
Ответы с готовыми решениями:

БД гостиничного комплекса
Добрый день, помогите пожалуйста. У меня есть БД гостиничного комплекса нужно при бронировании на одну и ту же дату выбивал &quot;На данное...

Информационная система гостиничного комплекса
Помогите пожалуйста по описанию сделать таблицы в 3 нормальные формы. Гостиничный комплекс состоит из нескольких зданий-гостиниц...

Информационная система гостиничного комплекса
Помогите пожалуйста, никак не могу разобраться в структуре таблиц. Мне просто скелет таблиц и все. Гостиничный комплекс состоит из...

9
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,111
Записей в блоге: 2
04.05.2022, 10:39
Цитата Сообщение от fla4er Посмотреть сообщение
при бронировании на одну и ту же дату ...
Ну, так ищите перед бронированием запись с такими же параметрами.
В чём проблема?
0
-1 / 0 / 0
Регистрация: 08.12.2021
Сообщений: 44
04.05.2022, 10:45  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ну, так ищите перед бронированием запись с такими же параметрами.
В чём проблема?
Нужно чтоб была проверка по Бд
И при бронировании на одну и ту же дату, вискакивал текст бокс
Цитата Сообщение от fla4er Посмотреть сообщение
На данное число уже есть бронирование
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,111
Записей в блоге: 2
04.05.2022, 10:47
Цитата Сообщение от fla4er Посмотреть сообщение
Нужно чтоб была проверка по Бд
Я это понял.
Что мешает вам это сделать?
И какое это имеет отношения к WPF?
В WPF нет никаких инструментов для работы с БД.

Может вашу тему переместить в раздел ADO?
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
04.05.2022, 10:49
fla4er, тяжело разобраться не видя объектной модели и догадываясь, что откуда берётся. Такие конструкции:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        private void btn_UpdateRoom1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (db = new ApplicationContext())
                {
                    RoomNumber delRoom = new RoomNumber() { IdRoom = int.Parse(tb_DelRoom.Text) };
                    db.RoomNumbers.Attach(delRoom);
                    db.RoomNumbers.Remove(delRoom);
                    db.SaveChanges();
                    Load();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Я бы вызывал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        private void btn_UpdateRoom1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                UpdateRoom(tb_DelRoom.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void UpdateRoom(String DelRoomText)
        {
                using (db = new ApplicationContext())
                {
                    RoomNumber delRoom = new RoomNumber() { IdRoom = int.Parse(DelRoomText) };
                    db.RoomNumbers.Attach(delRoom);
                    db.RoomNumbers.Remove(delRoom);
                    db.SaveChanges();
                }
                Load();
        }
0
-1 / 0 / 0
Регистрация: 08.12.2021
Сообщений: 44
04.05.2022, 10:51  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
тяжело разобраться не видя объектной модели и догадываясь, что откуда берётся. Такие конструкции:
Могу скинуть .zip файл, Посмотрите
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
04.05.2022, 10:53
fla4er, извини - некогда. Выложи здесь может кто-то и посмотрит.
0
-1 / 0 / 0
Регистрация: 08.12.2021
Сообщений: 44
04.05.2022, 11:07  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Может вашу тему переместить в раздел ADO?
Если можно)
0
-1 / 0 / 0
Регистрация: 08.12.2021
Сообщений: 44
05.05.2022, 14:20  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
fla4er, извини - некогда. Выложи здесь может кто-то и посмотрит.
Может появилось время?
Нужна помощь
0
 Аватар для Andrey-MSK
3354 / 2240 / 388
Регистрация: 14.08.2018
Сообщений: 7,573
Записей в блоге: 4
05.05.2022, 14:54
fla4er, Проверяйте в запросе то, что есть запись на эту дату. Если есть - выводите что бронь, если нет - выводите что свободно.
В EF поиск во контексту производится с помощью Find(), First(), FirstOrDefault().
Find() - ищет по ID записи, остальные по полю(полям).
Примеры - Выборка и фильтрация
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2022, 14:54
Помогаю со студенческими работами здесь

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

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

Разработка программного комплекса
Разработка программного комплекса для решения задачи поиска минимума функции n переменных методом штрафных функций (внешние штрафы). ...

База данных оздоровительного комплекса
Форумчане, может у кого завалялась база данных или начало БД тема: баня/сауна или оздоровительный комплекс или санаторий буду...

Моделирование специализированного вычислительного комплекса
Имеется специализированный вычислительный комплекс, который используется с интервалом 10+-5 мин. Время, необходимое для выполнения...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru