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

Сравнить DataTimepicker из формы с БД

15.05.2019, 21:50. Показов 1596. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В моей программе имеется дата заезда/выезда посетителя. Когда я заселяю гостя, номер комнаты удаляется из таблицы "Свободные номера", чтобы его нельзя было повторно.

Сейчас проблема состоит в том, что я не знаю как забронировать один номер на две разные даты.
Например одна бронь на "15.05.2019 - 16.05.2019" и другая на "16.05.2019 - 20.05.2019".

Надеюсь мне удалось донести мысль. Подскажите, пожалуйста как будет правильнее реализовать эту функцию. Спасибо.
Миниатюры
Сравнить DataTimepicker из формы с БД   Сравнить DataTimepicker из формы с БД  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.05.2019, 21:50
Ответы с готовыми решениями:

DataTimePicker при открытии формы пустое значение
как сделать, чтобы при открытии формы..автоматически в DataTimePicker не прописывалась дата, а просто была пустая..

сравнить системную дату и датами формы
всем привет!) у меня задача следующая. есть таблица этап, в ней есть id_etap, name_etap, date_etap. date_etap срок окончания этапа. ...

Вытащить данные из формы html и сравнить их с уже имеющимися данными в программе
Проблема такая: у меня есть html файл с формой, на которой есть логин и пароль, я хочу используя C++ вытащить эти логин и пароль из формы...

7
95 / 62 / 22
Регистрация: 11.03.2013
Сообщений: 608
Записей в блоге: 7
15.05.2019, 22:57
Цитата Сообщение от Raushan919 Посмотреть сообщение
Сейчас проблема состоит в том, что я не знаю как забронировать один номер на две разные даты.
Вы код немножко оголите, как Вы заносите клиента в базу.
так?
C#
1
2
3
sql = "INSERT INTO clients values(@имя,@фамилия,@отчество,@датазаезда,@датаотъезда,@паспорт,@номер,@гости,@bool)";
ExecuteNonQuery(sql, new SqliteParameter("@имя", txtName.Text), new SqliteParameter("@фамилия", txtLastName.Text);
 //и т.д.
0
0 / 0 / 0
Регистрация: 23.05.2018
Сообщений: 23
15.05.2019, 23:16  [ТС]
anomal6, Вот так

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
private void button1_Click(object sender, EventArgs e)
        {
 
            if (dateTimePicker1.Text != "" && dateTimePicker2.Text != "" && textBox1.Text != "" && textBox2.Text != "" && textBox4.Text != "" && comboBox2.Text != "")
            {
                гостиTableAdapter.Insert(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, comboBox2.Text, dateTimePicker1.Value, dateTimePicker2.Value, checkBox1.Checked);
                MessageBox.Show("Запись добавлена");
            }
            else
            {
                MessageBox.Show("Заполните все поля");
            }
            dateTimePicker1.Text = ""; dateTimePicker2.Text = ""; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; comboBox2.Text = "";
            sql_delete();
 
            try
            {
                гостиTableAdapter.Update(hotelDataSet.Гости);
            }
            catch
            {
                MessageBox.Show("Ошибка при сохранении!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
0
95 / 62 / 22
Регистрация: 11.03.2013
Сообщений: 608
Записей в блоге: 7
16.05.2019, 07:57
Цитата Сообщение от Raushan919 Посмотреть сообщение
Вот так
Можно и не удалять из свободных номеров после того как заселили. Достаточно при открытии формы считать данные номера, а именно Дату последнего выезда, и указать эту дату, как дату заезда при новом заселении.
Если прямо уж надо удалить, то перенесите в другую таблицу данные, а уже потом считайте их.

C#
1
2
3
4
5
6
7
8
// текст запроса по-умолчанию выдаст последнюю заполненую ячейку
    string query = "SELECT ДатаОтъезда FROM гостиTable";
 
    // создаем объект OleDbCommand для выполнения запроса к БД MS Access
    OleDbCommand command = new OleDbCommand(query, myConnection);
 
    // выполняем запрос и выводим результат в  dateTimePicker2.Text
    dateTimePicker2.Text = command.ExecuteScalar().ToString();
И немного не понятно, зачем вы ставите поля пустыми?
C#
1
2
dateTimePicker1.Text = ""; dateTimePicker2.Text = ""; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; comboBox2.Text = "";
            sql_delete(); //<== И что это за метод?
И что вы пытаетесь обновить?
C#
1
2
3
4
try
            {
                гостиTableAdapter.Update(hotelDataSet.Гости);
            }
Вы же уже занесли данные в гостиTable

Не по теме:

И совет, переобзовите все TextBox'ы, для удобства, например не TextBox1, а txtNameClient например, читать код потом легче будет, когда нужно будет что то поправить. ПРОВЕРЕНО! на личном опыте

0
0 / 0 / 0
Регистрация: 23.05.2018
Сообщений: 23
16.05.2019, 09:26  [ТС]
Цитата Сообщение от anomal6 Посмотреть сообщение
И что вы пытаетесь обновить?
Да, это оказалось действительно ненужным, спасибо.

Цитата Сообщение от anomal6 Посмотреть сообщение
И немного не понятно, зачем вы ставите поля пустыми?
Поля делаю пустыми для того, чтобы после заселения можно было заселить сразу же ещё одного посетителя. Это так, ерунда.

sql_delete(); как раз-таки и удаляет запись с таблицы "Свободные номера" после заселения.

C#
1
2
3
4
5
6
        public void sql_delete()
        {
            string sql = "DELETE Свободные.Номер, Свободные.Тип FROM Свободные WHERE (((Свободные.Номер) = " + dataGridView1.SelectedCells[0].Value.ToString() + "));";
            OleDbCommand command = new OleDbCommand(sql, myConnection);
            command.ExecuteScalar();
        }
Сейчас попробую сделать по Вашей подсказке. Огромное спасибо за отклик!

Добавлено через 31 минуту
Цитата Сообщение от anomal6 Посмотреть сообщение
Достаточно при открытии формы считать данные номера, а именно Дату последнего выезда, и указать эту дату, как дату заезда при новом заселении.
Попробовал сделать, как Вы посоветовали. Это не совсем то, что нужно
например, что если мне нужно заселить гостя в совершенно другой номер. Тогда последняя дата выезда окажется датой выезда гостя из совершенного другого номера.
0
95 / 62 / 22
Регистрация: 11.03.2013
Сообщений: 608
Записей в блоге: 7
19.05.2019, 02:06
Цитата Сообщение от Raushan919 Посмотреть сообщение
Тогда последняя дата выезда окажется датой выезда гостя из совершенного другого номера.
Вы не верно считали данные, скорее всего Вы либо запутались, либо делаете то, чего не указали тут.
Но мне кажется, скорее всего Вы просто удалили заселяемый номер, и считался другой.
Если Вы по-прежнему удаляете свободные номера, прекратите это делать. Создайте новую таблицу и переносите заселённых туда. Зачем Вам удалять?
Вы боитесь что заселите новых клиентов к существующим?
Проблема решается на раз
C#
1
2
3
4
5
6
7
8
9
10
//Выбираем дату
//Считываем заселяемый номер например 3 где Дата заезда dateTimePicker1.Text
 
//=============================================================//
string sql = "Select гостиTable FROM Номер WHERE ДатаЗаезда LIKE '%" + dateTimePicker1.Text + "%'";
//=============================================================//
if(номер3 != пустой)
{
MessageBox.Show("Номер занят\rЗаселение невозможно, можно выбрать другой день", "Ахтунг!")
}

Во-первых Вам это даст в дальнейшем отчёт.
Во-вторых Вы не будете путаться, всегда можно подсмотреть
В-третьих у Вас будет какая то иерархия.

Если Ваш проект не мега секретный прикрепите его, постараюсь помочь Вам.
1
0 / 0 / 0
Регистрация: 23.05.2018
Сообщений: 23
19.05.2019, 13:10  [ТС]
Цитата Сообщение от anomal6 Посмотреть сообщение
Если Ваш проект не мега секретный прикрепите его, постараюсь помочь Вам.
Было бы очень-очень здорово.
Вложения
Тип файла: rar HotelManagment v2 19.05.rar (951.4 Кб, 10 просмотров)
0
0 / 0 / 0
Регистрация: 23.05.2018
Сообщений: 23
23.05.2019, 19:41  [ТС]
anomal6, я пытался сделать как Вы сказали, но ничего не получилось. Видимо я чего-то не понимаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2019, 19:41
Помогаю со студенческими работами здесь

DataTimePicker
1)какой формат необходимо установить, чтобы в таблице БД хранилась только дат, без времени..... использовала формат shot...все равно...

DataTimePicker
БД подключена через ADOQuery, в ней есть столбец с занесенными в него датами. Нужно чтобы при нажатии на кнопку, выбрав 2 даты через два...

DataTimePicker
В чем проблема? подскажите пожалуйста begin qry1.Parameters.ParamByName('Dat1').Value:= dtp1.Date; ...

Datatimepicker
Как отнять datetimepicker1 от datetimepicker2 и вывести в label, но чтоб выводило только год.

DataTimePicker
Существует форма на которой есть ADOTable и форма редактирования записи в этой таблице, появился вопрос по поводу того, как из AdoTable...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Команды "Заполнить" и "Очистить" на форме документа
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, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru