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

Создание события по дате

04.07.2016, 18:15. Показов 1999. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех.
Я придумал себе новую проблему.
Создаю эту тему потому что даже не знаю как сформулировать вопрос поисковику.

Ну так вот. Есть приложение работающее с БД. В БД есть столбцы начальная дата и конечная. Как сделать ежедневную проверку этих данных, а точнее, конечной даты на факт её приближения. То есть, приближается конечная дата - должно появляться предупреждение, что ,мол, "период заканчивается, примите срочно меры"
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.07.2016, 18:15
Ответы с готовыми решениями:

Запуск события по дате и времени из DBGrid
Здравствуйте Уважаемые программисты, нужна помощь, есть стандартная база даных *.cds, к ней прикручен DBGrid. Как можно вывести например...

Создание объекта-события и обработчика события
Допустим у меня есть следующий класс: public class Example { private boolean bool; public boolean isBool() { return bool;...

Создание таблиц в бд по дате
День добрый! Столкнулся с такой ситуацией. При вводе данных в textbox (5 штук) и одна Data Чтоб автоматически в бд создалась таблица с...

10
 Аватар для Vort_
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
04.07.2016, 19:51
Пройтись по всем строкам, вычесть конечную дату из DateTime.Now и сравнить .TotalSeconds с пороговым значением.
Или я что-то не так понял?
0
2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 89
04.07.2016, 20:59  [ТС]
То есть делать в определенное время делать запрос к базе, находить соответствующую дату и ... как описать условие для вывода сообщения?
0
 Аватар для Vort_
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
05.07.2016, 07:26
Цитата Сообщение от stazis Посмотреть сообщение
как описать условие для вывода сообщения?
Вот условие для предупреждения за сутки:
C#
1
        if ((endDate - DateTime.Now).TotalHours < 24)
Тут endDate - переменная типа DateTime, содержащая конечную дату.
0
2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 89
05.07.2016, 19:04  [ТС]
Вот сделал я запрос к базе, получил записи с датами, которые идут после DateTime.Now. А что теперь-то делать? Как присвоить переменной значение полученных дат?
0
 Аватар для Vort_
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
05.07.2016, 19:13
С базами данных в C# можно работать множеством способов.
Какой конкретно в данном случае используется - я не знаю, поэтому сказать сложно.
Если был бы пример кода - глянул бы, но с базами у меня опыта мало, поэтому результат не гарантирую.

И ещё - вполне возможно, что эту проверку можно сделать на механизмах самой базы даных, с помощью определённым образом сформированного запроса.
0
2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 89
06.07.2016, 01:09  [ТС]
Ну у меня тут пока сырое всё. Вместо DateTime.Now я пока использую датапикер, с DateTime.Now у меня проблемы при выполнении запроса. Пока что надо нажимать кнопку, чтобы опросить базу. Но остальное уже проверено не раз - запрос работает.
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
private void button_запрос_на_конечную_дату_Click(object sender, EventArgs e)
        {
            
            //попытка сделать запрос на окончание периода
            OleDbConnection conn = new OleDbConnection("Data Source="c:\\1\\Музейная база.mdb";User ID=Admin; Provider="Microsoft.Jet.OLEDB.4.0";");
            conn.Open();
            // Command
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "SELECT * FROM [Сработки] WHERE (Дата  between @dtnow and @dtnow + 4)";                               
 
            // параметр            
            OleDbParameter dtnow = cmd.CreateParameter();
            dtnow.OleDbType = OleDbType.Date;
            dtnow.Value = dateTimePicker1_дата_сработки.Value.Date; 
            cmd.Parameters.Add(dtnow);         
 
                // запрос
                OleDbDataAdapter reader = new System.Data.OleDb.OleDbDataAdapter(cmd);
            cmd.ExecuteNonQuery();
 
            // datagrid просто для проверки работоспособности запроса
            DataSet nabor = new System.Data.DataSet();
            reader.Fill(nabor, "Сработки");
            dataGridView1.DataSource = nabor;
            dataGridView1.DataMember = "Сработки";
 
            conn.Close();
 
            //жалкая попытка работы с bindingSource
            DataSet end = new System.Data.DataSet();
            bindingSource1.DataSource = end;
            bindingSource1.DataMember = "Сработки";
 
           
            //if ((endDate - DateTime.Now).TotalHours < 24)
         
 
        }
Я от вас ничего не требую, если сможете помочь, я буду очень рад. Если нет - всё равно спасибо.
0
 Аватар для Vort_
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
06.07.2016, 07:18
Разобрался, не надо ни датапикера, ни DateTime.Now.
Достаточно запроса:
C#
1
cmd.CommandText = "SELECT * FROM [Сработки] WHERE DateDiff(\"h\", [Дата], Now()) < 24";
0
2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 89
06.07.2016, 16:19  [ТС]
Спасибо за красивый запрос. Но у меня проблема-то в том, что я не знаю как теперь взять отобранные записи, чтобы показать их, допустим, во всплывающем сообщении, например: "У такого-то человека заканчивается разрешение на доступ к такому-то объекту". Где человек берется из отобранной по запросу записи, там же содержится и его фамилия.
0
 Аватар для Vort_
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
06.07.2016, 16:24
Лучший ответ Сообщение было отмечено stazis как решение

Решение

Цитата Сообщение от stazis Посмотреть сообщение
Но у меня проблема-то в том, что я не знаю как теперь взять отобранные записи, чтобы показать их, допустим, во всплывающем сообщении
C#
1
2
            foreach (DataRow dr in nabor.Tables["Сработки"].Rows)
                MessageBox.Show(dr[1].ToString());
1
2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 89
06.07.2016, 17:50  [ТС]
Кажись это то, что мне надо. И так просто.

Добавлено через 1 час 15 минут
не для меня, конечно, просто.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2016, 17:50
Помогаю со студенческими работами здесь

Создание директории по дате
Всем привет. Вот решаю простую задачу, но результат меня удевляет. Надо в цикле создавать директории. QString...

Создание фильтра по дате
Вечер добрый! Столкнулся с проблемой написания фильтра для таблицы. Таблица присоединена с sql сервера. (Немного отойду от темы) ...

Создание итогового отчета по выбранной дате
Подскажите как реализовать такую вот штуковину. Есть рабочая база, (кстати вы мне помогали ее корректировать, спасибо всем за это!!!) , при...

Выборка по дате и создание списка по условию
Господа, прошу помощи. Имеется БД для кафедры. В ней 3 таблицы 1. Лабораторные(Название, Дата проведения, Дисциплина,...

создание события
мне нужно чтобы в Edit1 на клик выводилось true или false тоесть при нажатии на Edit первый раз появилось True в том же самом Edit ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru