Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
6 / 6 / 6
Регистрация: 09.12.2013
Сообщений: 104
1

Как сделать статус онлайн/офлайн подключение к базе данных

13.02.2016, 00:35. Просмотров 1444. Ответов 13
Метки нет (Все метки)

Пишу программу для принятия решений. Суть программы заключается в том, что формируется состав голосования, потом все приходят в зал для голосования и каждый авторизуется со компьютера, а ген. директора например в программе высвечивается кто подключился, и как только он видел, что все подключились он открывает голосования. Так вот я хочу организовать в программе админа статусы подключенных компьютеров к базе.Например раз в 1 минуту со всех запущенных на компьютерах клиентов отправляется запрос к базе. Подскажите в какую сторону смотреть или как можно это реализовать?
Так же хочу кроме этого реализовать такую функцию как проверка готовности. Это что-то вроде финального подтверждения, то есть на остальные компьютеры отправлены с запросы с вопросом готовы ли они к голосованию.
Есть какие-то варианты по реализации данного вопроса?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2016, 00:35
Ответы с готовыми решениями:

Как сделать подключение к базе данных в Fast Report?
Народ, помогите пожалуйста. Как сделать подключение к базе данных в Fast Report? У меня не...

Как настроить подключение к базе данных в Visual Studio 2017?
Учусь работать с базами данных. Есть устанолвеный firebird 3.0 64-bit Работаю в Visual studio...

Как сделать поиск в базе данных
Вот создал базу на SQL и сохранил в файл PhoneVinnitsa.mdf, потом создал WEB проект на C# (Состоит...

Как сделать такую еще форму подключения к базе данных?
Как сделать такую еще форму подключения к базе данных?

13
Модератор
Эксперт .NET
5229 / 4042 / 1163
Регистрация: 12.10.2013
Сообщений: 11,742
Записей в блоге: 2
13.02.2016, 00:43 2
Цитата Сообщение от Alex_DeaD Посмотреть сообщение
Есть какие-то варианты по реализации данного вопроса?
Думаю да. Смотрите в сторону распределенных приложений /WCF. Программы-клиенты, используется режим сессий c первым методом типа Connect(). У программы-администратора таймер, который через определенный момент времени сканирует службу, отвечающую за работу с БД на список подключенных клиентов.
0
6 / 6 / 6
Регистрация: 09.12.2013
Сообщений: 104
13.02.2016, 01:10  [ТС] 3
Цитата Сообщение от insite2012 Посмотреть сообщение
Думаю да. Смотрите в сторону распределенных приложений /WCF.
Я как раз собирался писать WCF сервис. В нем можно как-то это реализовать?
Цитата Сообщение от insite2012 Посмотреть сообщение
Программы-клиенты, используется режим сессий c первым методом типа Connect().У программы-администратора таймер, который через определенный момент времени сканирует службу, отвечающую за работу с БД на список подключенных клиентов.
Можно пожалуйста по подробней, а только столкнулся с ними.
0
Модератор
Эксперт .NET
5229 / 4042 / 1163
Регистрация: 12.10.2013
Сообщений: 11,742
Записей в блоге: 2
13.02.2016, 01:33 4
Цитата Сообщение от Alex_DeaD Посмотреть сообщение
Я как раз собирался писать WCF сервис. В нем можно как-то это реализовать?
Почему же нет. Можно.
Цитата Сообщение от Alex_DeaD Посмотреть сообщение
по подробней
Если рассказывать подробнее, мой рассказ затянется на долго).
Для начала, ответьте на вопрос: где предполагается все это размещать? То есть, где будет размещаться БД и программа-администратор. Ну всю примерную архитектуру, как вы ее видите и исходя из имеющихся технических возможностей.
0
6 / 6 / 6
Регистрация: 09.12.2013
Сообщений: 104
13.02.2016, 18:31  [ТС] 5
Цитата Сообщение от insite2012 Посмотреть сообщение
Для начала, ответьте на вопрос: где предполагается все это размещать? То есть, где будет размещаться БД и программа-администратор. Ну всю примерную архитектуру, как вы ее видите и исходя из имеющихся технических возможностей.
Предлагается написать две форму или всё-таки одну, но с настройкой отображений контролов и пунктов меню для админа и пользователя. Сервис с БД будет располагаться на компьютере у Админа . Предполагается использовать на фирме где принимаются коллегиальное принятие решений.Как-то так, вроде ответил на ваш вопрос.
0
Модератор
Эксперт .NET
5229 / 4042 / 1163
Регистрация: 12.10.2013
Сообщений: 11,742
Записей в блоге: 2
13.02.2016, 18:38 6
Alex_DeaD, ятд, делать две формы. Одну администраторскую и несколько клиентских (столько, сколько потребуется. Вернее, она будет одна, просто запущено будет их несколько). БД тут ни к чему, данные же не предполагается хранить. Просто задавать всем голосующим вопросы и принимать ответы на них. Ну и давать разрешение на начало голосования.
0
Эксперт .NET
7693 / 5398 / 919
Регистрация: 21.01.2016
Сообщений: 20,706
14.02.2016, 05:20 7
Мне так кажется, что такую задачу легче всего (и правильнее, но я могу ошибаться) решить с помощью веб-приложения.
0
Модератор
Эксперт .NET
5229 / 4042 / 1163
Регистрация: 12.10.2013
Сообщений: 11,742
Записей в блоге: 2
14.02.2016, 15:16 8
Цитата Сообщение от Usaga Посмотреть сообщение
легче всего (и правильнее, но я могу ошибаться) решить с помощью веб-приложения.
Можно вообще использовать Web-службы (кстати, непонятно, зачем мелкомягкие их выпилили, удобная штука была). Эта модель может работать как из браузера, так и через программу-прокси (в отличие от служб WCF).
0
Эксперт .NET
7693 / 5398 / 919
Регистрация: 21.01.2016
Сообщений: 20,706
14.02.2016, 15:20 9
Так WCF полностью заменила собой Web-службы. Т.е. если сервис использует HTTP-биндинг, то к нему так-же можно из браузера обращаться. Или я что-то не то говорю?
0
Модератор
Эксперт .NET
5229 / 4042 / 1163
Регистрация: 12.10.2013
Сообщений: 11,742
Записей в блоге: 2
14.02.2016, 15:25 10
Что касается непосредственно задачи, я прикинул как это реализовать (с использованием WCF). Дуплексная служба, вот даже примерные методы:
В контракте службы:
C#
1
2
3
Connect();            //Соединение с сервером (Админ)
Disconnect();        //Отключение от сервера (Админа)
Vote(bool result);  //Подать свой голос
В контракте обратного вызова:
C#
1
2
3
Activate();     //Активировать голосование
Deactivate();  //Деактивировать голосование
ShowVoteResults(string result);  //Выдать результат голосования всем участникам
Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
если сервис использует HTTP-биндинг, то к нему так-же можно из браузера обращаться.
Думаю что можно (по крайней мере метаданные же мы видим через браузер). Но в литературе такой вариант почему-то вообще не рассматривается (в отличие от старых веб-служб, о которых ясно сказано, что они работают через браузер).
Надо попробовать порыть MSDN, посмотреть что там сказано по этому вопросу.
0
Модератор
Эксперт .NET
5229 / 4042 / 1163
Регистрация: 12.10.2013
Сообщений: 11,742
Записей в блоге: 2
14.02.2016, 22:17 11
Лучший ответ Сообщение было отмечено Alex_DeaD как решение

Решение

Alex_DeaD, в архиве два проекта-сервер и клиент. Сначала запустить сервер, ну а потом клиента (или клиентов, сколько надо). Дальше можете открыть голосование, голосовать, закрыть его и выдать результат. Подкорректируйте под свои нужды, основную модель я сделал. Обработку ошибок, интерфейс и все что вам требуется.
2
Вложения
Тип файла: rar Voter.rar (141.6 Кб, 12 просмотров)
6 / 6 / 6
Регистрация: 09.12.2013
Сообщений: 104
15.02.2016, 22:11  [ТС] 12
Цитата Сообщение от insite2012 Посмотреть сообщение
Alex_DeaD, в архиве два проекта-сервер и клиент.
Спасибо вам что вы написали мне программу. Но к моему сожалению мне сейчас будет тяжело в ней разобраться из разного у нас с вами уровня знаний. Очень тяжело понять, что и как происходит, я насколько понял вы ещё и библиотеку отдельно написали?+ у меня сервер выдаёт исключение на строке
C#
1
host.Open();
Не могли бы вы просто на словах объясните как написать службу которая каждую минуту(грубо говоря) будет проверять кто подключен к базе, а кто нет.
Большое спасибо вам за ваши труды. Разберусь позже когда больше буду больше знать.
У меня по ходу просмотра кода сервера возник вопрос:
host.Opening += new EventHandler(host_Opening);
Что значит +=?
0
Модератор
Эксперт .NET
5229 / 4042 / 1163
Регистрация: 12.10.2013
Сообщений: 11,742
Записей в блоге: 2
15.02.2016, 22:23 13
Цитата Сообщение от Alex_DeaD Посмотреть сообщение
ещё и библиотеку отдельно написали?
Ну да, чтобы ее использовать и в сервере, и в клиенте. Зачем код дублировать.
Цитата Сообщение от Alex_DeaD Посмотреть сообщение
сервер выдаёт исключение на строке
Какое именно исключение?
Цитата Сообщение от Alex_DeaD Посмотреть сообщение
host.Opening += new EventHandler(host_Opening);
Что значит +=?
Подключение обработчика, в данном случае используется в дебаге (через директиву препроцессора) для того чтобы видеть, что служба запущена и работает.

Добавлено через 32 секунды
Цитата Сообщение от Alex_DeaD Посмотреть сообщение
Очень тяжело понять, что и как происходит
Это проект с использованием WCF.

Добавлено через 2 минуты
Цитата Сообщение от Alex_DeaD Посмотреть сообщение
написать службу которая каждую минуту(грубо говоря) будет проверять кто подключен к базе, а кто нет.
Насколько я знаю, сами БД не хранят подключенных к ней клиентов (но могу ошибаться). Если я прав, то так или иначе нужен код, который будет добавлять запись о клиенте в БД и удалять его оттуда, и код который будет проверять записи. Так что в итоге все выльется в примерно то же самое. Реализация будет несколько другой, но принцип не изменится. Если надо, могу сделать, технология WCF мне очень нравится.
0
0 / 0 / 0
Регистрация: 24.12.2018
Сообщений: 2
24.12.2018, 18:31 14
insite2012, возможно переделать игру Iron Force в офлайн?

Добавлено через 4 минуты
это надо скачать?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2018, 18:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как сделать вычисляемое поле в Visual Studio 2013 в базе данных
Как сделать вычисляемое поле в Visual Studio 2013 в базе данных. Нужно умножить Количество часов на...

Как сделать чтобы изменения внесённые в запрос сохранились в базе данных?
Используется: - EntityFramework - 6.2.0; - MS Sql Server 2012; Таблицы: -...

Как подключиться к базе данных MS SQL Server 2008 и сделать выгрузку?
Всем привет) Как подключиться к базе данных MS SQL Server 2008 и сделать выгрузку? Создаю Windows...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.