Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 09.06.2023
Сообщений: 19
1

Средство автоматизации программирования на C# и использования табличных форм без постоянного соединения с БД

09.06.2023, 07:36. Показов 2088. Ответов 37

Author24 — интернет-сервис помощи студентам
При обычном программировании для каждой табличной формы требуется большой объем программирования даже без программирования сервиса. Разработка сервиса для пользователя требует еще больший объем программирования.
Поэтому целесообразно разработать средства по автоматизации программирования табличных форм, например, разработать и использовать DLL-библиотеку класcов, с соответствующими методами для работы с базами данных с полнофункциональным удобным сервисом. Использование этой библиотеки многократно сократит время разработки приложений и унифицирует интерфейс работы с базами данных.
Мною Был разработан вариант такой библиотеки ClassLibBD с классом: ClassBD_dataGridView и шаблон. Hablon, а также предложена современная технология формирования и применения табличных форм с использованием данной библиотеки и стандартного элемента DataGridView с моделью ADO .NET.
Обычно, для организации работы пользователя с базой данных в табличной форме используется в C# стандартный класс dataGridView. Однако, в языке программирования C# нет достаточных стандартных средств по автоматизации программирования процедур формирования и работы пользователя с использованием данного класса.
Помимо средств ввода и корректировки информации в базе данных с использованием табличных форм в режиме ADO .NET были разработаны многочисленные визуальные методы настройки таблиц и по ведению и формированию дополнительных аналитических итоговых и перекрестных таблиц и диаграмм непосредственно самим пользователем.
Алгоритм обновления базы данных
Методом Obnovit_tek_str класса ClassBD_dataGridView, который вызывается и выполняется после окончания корректировки значения текущей ячейки, реализован режим немедленного обновления командами SQL по следующему алгоритму.
1) Обновление записи в базе данных происходит только после заполнения всех ячеек для полей обязательных для заполнения.
2) Осуществляется подключение к базе данных.
3) Выполняется команда SELECT для проверки наличия записи в базе данных с текущим значением ключа (ключ должен быть в таблице).
4) Если запись есть, то выполняется команда UPDATE для корректировки соответствующей записи в базе данных.
5) Если записи нет, то выполняется команда INSERT для добавления записи в базу данных и новая запись становится текущей в базе данных.
6) Если возникла ошибка при выполнении команды SQL немедленно осуществляется отключение от базы данных и выводится сообщение о причине ошибки и восстанавливается первоначальное значение последней корректируемой ячейки таблицы и пользователь устраняет ошибку в текущей строке.
7) После внесения изменений в базу данных выполняется команда SELECT, которая проверяет наличие откорректированной записи в базе данных и если еe нет, то осуществляется отключение от базы данных и выводится сообщение об ошибке.
8) Если запись есть, то выполняется команда SELECT для измененной записи и текущие значения полей этой записи переносятся в текущую строку таблицы с целью проверки достоверности внесения изменений, вывода значений некорректируемых расчетных полей, полей из других таблиц или запросов и полей типа счетчик.
9) Осуществляется отключение от базы данных
10) Пользователь визуально проверяет правильность внесенных изменений.

Удаление производится путем выделения удаляемых строк в таблице DataGridView, подключение к базе данных и немедленного удаления их из базы данных командой SQL DELETE нажатием кнопки на удаление, после положительного ответа на запрос о подтверждении удаления с последующим отключением от базы данных.

Таким образом, подключение (соединение) к базе осуществляется только на период выполнения команд SQL для текущей строки таблицы.
Это самый удобный и надежный способ работы с базой данных без необходимости предварительного запоминания изменений для их последующего переноса в базу данных с опасностью их потери при аварийном завершении работы программы, что может случиться, например, при использовании метода TableAdapter.Update.
Практически, предложенный режим имитирует работу с постоянным подключением к базе данных, т.к. изменения в базу данных вводятся немедленно, однако подключение к базе производится динамически только на короткий период (сотые доли секунды) выполнения команд SQL. Таким образом, реализуется модель ADO .NET.
Дополнительно разработан класс Hablon, который содержит несколько форм с различным наборов кнопок (до 30 кнопок) и типовых элементов элементов при формировании табличных форм классом ClassBD_dataGridView .
В классе Hablon можно создать несколько форм с различными шаблонами, например с одним, двумя тремя и более наборами кнопок.
Данный класс используется при разработке приложений в качестве унаследованной формы при создании табличных форм.
Использование шаблона упрощает и ускоряет разработку
Размещения элементов на форме.
Определяется число размещаемых таблиц на одной форме и выбирается шаблон с числом строк c кнопками равным числу таблиц.
Не нужные кнопки и поля переносятся на свободное место на форме и для них устанавливается свойство Visible=false.
Под каждой строкой кнопок размещается одна таблица dataGridView.
В первой строке экрана размещается список Spisok для вывода строк с кодами для подстановки кодов в таблицы. Если список не используется, то устанавливается для него свойство Visible=false. Этот список один для всех таблиц.
В форме можно указать любые дополнительные элементы, которые относятся к таблицам, например, label для указания наименования таблицы, описания или справки о таблице.
Произведенные пользователем при работе с таблицами изменения (размер, наименование и тип шрифта; порядок вывода и ширина колонок; скрытие колонок и др.) могут быть сохранены в виде макета таблицы, нажатием кнопки сохранения, для дальнейшего использования в следующем сеансе работы пользователя.
Таким образом, пользователь может формировать макет внешнего вида таблицы на экране дисплея по своему желанию.
Программист может не формировать колонки таблицы при разработке таблицы – колонки сформируются автоматически по команде SELECT. Заголовками колонок будут наименования полей, а именами колонок – первые буквы в именах полей.
Далее, используя конструктор макета пользователь формирует макет внешнего вида таблицы, колонок и строк.
Для каждой таблицы создается отдельный экземпляр класса ClassBD_dataGridView.
Для каждой таблицы имеются кнопки (30 кнопок): развернуть таблицу и элементы управления таблицей на весь экран (кнопки перемещаются в начало экрана) и, обратно, свернуть таблицу к первоначальному виду одним щелчком мышки, что уменьшает число форм и пунктов вызова нужных таблиц в меню в приложении!
Основные возможности класса.
Корректировка данных в базе данных по технологии ADO .NET
Корректировка выполняется командами SQL Insert, Delete и Update.
Соединение с базой данных происходит только на время выполнения этих команд SQL. Корректировка выполняется немедленно после каждого изменения значения ячейки в таблице, что создает иллюзию постоянного подключения к базе данных.
Допускается работа базами данных с СУБД Access, SQL – Server и MySQL и др.
Копирование, сортировка по нескольким колонкам, закрепление и скрытие колонок на экране, изменение ширины и местоположения колонок, развертывание таблицы на весь экран и обратное свертывание.
Подстановки значений кодов из справочников с наименованиями кодов.
Визуальное формирование самим пользователем простых, итоговых и перекрестных аналитических таблиц и диаграмм.
Визуальная настройка вида табличной формы самим пользователем макета табличной формы. можно менять шрифты (размеры, наименования и типы), цвета элементов, место положение и размеры таблиц, включая развертывание на весь экран, форматы выводы данных и др. Макет можно сохранить для дальнейшего использования.
Для дополнительной обработки таблиц и/или вывода их на печать средствами Excel предусмотрен экспорт таблиц в файлы Excel, HTML–документы и CSV–файлы.
Имеется конструктор визуального формирования пользователем фильтров по различным условиям.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2023, 07:36
Ответы с готовыми решениями:

Можно ли как-то управлять мотором постоянного тока без использования транзистора?
Доброго времени суток! Купил себе набор ардуино и появился вопрос. Возможно глупый... Можно ли...

Как печатать таблицу из VBA без использования форм!
Есть таблица с произвольным, меняющимся количеством КОЛОНОК! И надо эту таблицу распечатать... ...

Формирование отправки данных методом POST без использования форм
Нужна программка, скрипт или премудрость браузеров, позволяющая отправлять данные методом POST, не...

Реализовать следующие операции без использования операторов программирования
Здравствуйте помогите хотя бы примером. Вот задание: Реализовать следующие операции без...

37
0 / 0 / 0
Регистрация: 09.06.2023
Сообщений: 19
23.10.2023, 08:32  [ТС] 21
Author24 — интернет-сервис помощи студентам
Доработанный Фреймворк DBGridChart для автоматизации разработки на C# программ формирования и использования табличных форм и диаграмм для ведения баз данных и аналитических таблиц и диаграмм с описанием, DLL-файлами и с исходным текстом демонстрационного примера.
Новое готовое приложение Экспресс обработка для корректировки баз данных и аналитической обработки данных в табличных, ленточных и графических формах с исходным текстом.
Данное приложение использует средства фреймворка DBGridChart и позволяет вынести описания запросов из исходных текстов программ в отдельный текстовый файл, что исключает необходимость в разработке оригинальных программ;
оперативно корректировать пользователям базы данных с различными СУБД и формировать аналитические таблицы и диаграммы без программирования.

http://vipuskniki.usue.ru/Docum.html
0
Эксперт .NET
12504 / 8688 / 1310
Регистрация: 21.01.2016
Сообщений: 32,637
23.10.2023, 08:41 22
Plehev VV, т.е. замечание выложить наработки и документацию на гитхаб ты на бую вертел, получается? Опять ссылка на ссылку с архивом? Если ты не хочешь, чтобы твоим фреймворком пользовались, то зачем вообще эта тема?
0
0 / 0 / 0
Регистрация: 09.06.2023
Сообщений: 19
23.10.2023, 09:22  [ТС] 23
С учетом полученных замечаний и предложений, выполнена доработка Фреймворк DBGridChart для автоматизации разработки на C# программ по ведению баз данных с различными СУБД формирования в табличной и ленточной формах и для формирования самим пользователем различных аналитических таблиц и диаграмм с полным описанием Фреймворка, DLL-файлами для работы, с исходным текстом демонстрационного примера. В данной версии, в частности, все команды Insert, Update и Delete формируются автоматически из команды Select без указания имен колонок.
Разработано новое готовое приложение Экспресс обработка, в котором полностью используются средства Фреймворка DBGridChart, но описания запросов вынесены из исходных текстов программ в отдельный текстовый файл, который ведется в удобной табличной форме. Это позволяет самому пользователю оперативно формировать описания и выполнять нерегламентированные запросы по ведению баз данных и формировать различные аналитические таблицы и диаграммы вообще без программирования.

http://vipuskniki.usue.ru/Docum.html
0
Эксперт .NET
12504 / 8688 / 1310
Регистрация: 21.01.2016
Сообщений: 32,637
23.10.2023, 09:36 24
Робот что ли...
0
163 / 153 / 33
Регистрация: 05.03.2013
Сообщений: 877
23.10.2023, 09:47 25
Цитата Сообщение от Plehev VV Посмотреть сообщение
Средство автоматизации программирования на C# и использования табличных форм без постоянного соединения с БД
А в чем смысл, можно в вкратце? Слишком много написано, не осилил. Чем стандартное решение не устраивает? Там (ADO.NET) постоянное соединение и не требуется, пока к базе не обращаешься.

Добавлено через 7 минут
Цитата Сообщение от Plehev VV Посмотреть сообщение
все команды Insert, Update и Delete формируются автоматически из команды Select без указания имен колонок.
Так стандартный инструмент и работает (TableAdapter) - пользуюсь конструктором, кроме Select ничего и не приходится писать. В чем заключается ваше изобретение пока не понял.
0
Эксперт .NET
12504 / 8688 / 1310
Регистрация: 21.01.2016
Сообщений: 32,637
23.10.2023, 10:06 26
Козадоев, я уже задавал такие вопросы и про адаптер ему говорил.
0
0 / 0 / 0
Регистрация: 09.06.2023
Сообщений: 19
04.11.2023, 16:53  [ТС] 27
В C# нет готового унифицированного и многофункционального интерфейса для пользователя (на подобие Access) для работы с базой данных - его нужно программировать при разработке каждой табличной или ленточной формы. Вообще, в аннотации я все написал, включая плюсы и недостатки TableAdapter и причину разработки. Посмотрите демонстрационный пример, демонстрирующий возможности фреймворка и его исходный текст и Вам будет очевиден факт, что объем оригинального программирования с использованием только TableAdapter программы с аналогичными возможностями демонстрационного примера не сопоставим по объему и времени программирования, даже если не все возможности программировать! А для приложения "Экспресс обработка" вообще нет программирования! Какой программист позволит себе реализовывать, при оригинальном программировании отдельных табличных или ленточных форм, даже некоторые подобные универсальные средства Фреймворка (например, настройка макета, формирования нерегламентированных таблиц и диаграмм, сортировки, корректировки баз данных с контролем в режиме немедленной корректировки, а не отложенной и инициирующейся пользователем, как при использовании TableAdapter и др.)! С уважением Плещев В.В.
0
1504 / 1052 / 146
Регистрация: 01.10.2009
Сообщений: 3,537
Записей в блоге: 1
04.11.2023, 18:21 28
Plehev VV, Вы его продавать хотите?
0
HF
1195 / 785 / 187
Регистрация: 09.09.2011
Сообщений: 2,399
Записей в блоге: 2
04.11.2023, 19:09 29
Прочитал. Ничего не понял. Восхитился. Тему закрыл. Забыл.
1
0 / 0 / 0
Регистрация: 09.06.2023
Сообщений: 19
04.11.2023, 19:26  [ТС] 30
Если-бы я хотел продавать, то зачем-бы я опубликовал DLL-файлы!? Конечно бесплатно!
0
Эксперт JavaЭксперт по электронике
3076 / 2150 / 548
Регистрация: 04.09.2018
Сообщений: 7,390
Записей в блоге: 4
04.11.2023, 20:10 31
Plehev VV, в моей практике еще не встречалось случаев, когда тот или иной подход в решениях работы с СУБД можно было бы хоть как-то автоматизировать. Иными словами - свести это к какому-то единому шаблону. "Шаблонизировать" механизмы эти - очень очень вряд ли. Ну, разве что, если не специально подводить под это всю концепцию отдельно взятого проекта.
К чему эти DLL то вообще? Учебную базу Борей усовершенствуют?
1
0 / 0 / 0
Регистрация: 09.06.2023
Сообщений: 19
04.11.2023, 21:01  [ТС] 32
В моей практике эти случаи постоянны. Возможно, мы решали различные задачи или решали по разному. Я всегда пытался не просто программировать, а искать общие алгоритмы, методы и подходы для их автоматизации не только без ущерба для пользователей, но и для максимального улучшения его работы. Но Вы правы, конечно есть задачи и пользователи которые требуют индивидуального подхода и программирования, но все-таки не абсолютно все задачи.
0
1155 / 933 / 154
Регистрация: 25.07.2015
Сообщений: 2,088
08.11.2023, 21:18 33
Цитата Сообщение от wizard41 Посмотреть сообщение
Plehev VV, в моей практике еще не встречалось случаев, когда тот или иной подход в решениях работы с СУБД можно было бы хоть как-то автоматизировать.
Плюсую.
за 25 лет не видел БД, где есть универсальный подход, везде своё всплывает.
Цитата Сообщение от Plehev VV Посмотреть сообщение
Допускается работа базами данных с СУБД Access, SQL – Server и MySQL и др.
Да подключение -возможно и то не всегда. Но потом начинается :
-Ах , MySql PIVOT не поддерживает;
-Ах, у MSSQL тяжко с регулярками;
-Ой, SQLite оказывается надо настраивать с помощью парадигм
И т.д , и т.п.
Цитата Сообщение от Plehev VV Посмотреть сообщение
Для дополнительной обработки таблиц и/или вывода их на печать средствами Excel предусмотрен экспорт таблиц в файлы Excel, HTML–документы и CSV–файлы.
... в чём цимус ?
На Хуа Хауну Самбреро когда и так всё есть ?
Я уж молчу про подключение к внешним данным : dbf,txt, csv,xml,xls,xlsx,json.....
Везде свой драйвер, свой провайдер.
Как всё это объединить в одно целое ,под разные СУБД, да и зачем ?
Цитата Сообщение от Plehev VV Посмотреть сообщение
Корректировка данных в базе данных по технологии ADO .NET
Да чем-же вам DataBinding то не угодил ?
Цитата Сообщение от Plehev VV Посмотреть сообщение
Визуальное формирование самим пользователем простых, итоговых и перекрестных аналитических таблиц и диаграмм.
Все это легко и непринуждённо делается в SSMS (MSSQL), MySql WorkBench, Devart Sqlite или DBViever, если всё в одном флаконе, в зависимости от потребностей
1
Эксперт JavaЭксперт по электронике
3076 / 2150 / 548
Регистрация: 04.09.2018
Сообщений: 7,390
Записей в блоге: 4
08.11.2023, 23:00 34
Цитата Сообщение от Plehev VV Посмотреть сообщение
В моей практике эти случаи постоянны.
Ну если развивать одну и туже базу табачного ларька, то да. Одна и таже структура, одни и те же действия.
Цитата Сообщение от Plehev VV Посмотреть сообщение
Возможно, мы решали различные задачи или решали по разному.
Не возможно, а совершенно точно различные, и точно по разному.
Цитата Сообщение от Plehev VV Посмотреть сообщение
не просто программировать, а искать общие алгоритмы, методы и подходы
Они давно уже найдены. EF и им подобным не дураки придумали и их развивают. Но даже они не могут "предсказать" твои модели, DTO, и прочее - все это пишется руками под конкретную ситуацию.

Plehev VV, кажется, ты не тот, за кого себя выдаешь. Тот кто пишет подобные "DLL"-помогайки, явно бы понимал ситуацию. А тут, похоже, ты не-знамо что пропихиваешь в массы. Смысл этого действа то какой? Популярностью это точно не пользуется.
1
Эксперт .NET
12504 / 8688 / 1310
Регистрация: 21.01.2016
Сообщений: 32,637
09.11.2023, 08:05 35
Цитата Сообщение от Plehev VV Посмотреть сообщение
В моей практике эти случаи постоянны.
Значит твоя практика крутится вокруг одной задачи, и одной таблицы. Что множит на ноль ценность твоей практики.

Цитата Сообщение от Plehev VV Посмотреть сообщение
Но Вы правы, конечно есть задачи и пользователи которые требуют индивидуального подхода и программирования, но все-таки не абсолютно все задачи.
Да, не абсолютно все, только 99.(9)%.

Я тебе уже говорил, что с точки зрения опытных разработчиков твоя библиотека выглядит как решение твоих собственных, не очень практичных задач. И в повседневной разработке она бесполезна чуть больше, чем полностью. А сама подача информации ещё больше ценность умножает на нуль.
0
0 / 0 / 0
Регистрация: 09.06.2023
Сообщений: 19
09.11.2023, 09:01  [ТС] 36
Excel тоже крутится вокруг одной таблицы и в тоже время не решает всех задач! По Вашей логике он не нужен, ибо его не было в Вашей практике! Практики бывают самые различные и для каждой из них нужны различные средства автоматизации и чем их больше тем лучше и отрицание этого факта есть ошибка!
0
Эксперт .NET
12504 / 8688 / 1310
Регистрация: 21.01.2016
Сообщений: 32,637
09.11.2023, 10:27 37
Цитата Сообщение от Plehev VV Посмотреть сообщение
Excel тоже крутится вокруг одной таблицы и в тоже время не решает всех задач!
Воообще, решает. Ибо не предоставляет, как твоя библиотека, какое-то заточенное под что-то одно решение. Там тупо грид и возможность писать формулы.

Цитата Сообщение от Plehev VV Посмотреть сообщение
По Вашей логике он не нужен, ибо его не было в Вашей практике!
Это по твоей логике. Ты мне приписал какой-то кривой тезис и сам же с ним начал спорить.

Цитата Сообщение от Plehev VV Посмотреть сообщение
Практики бывают самые различные и для каждой из них нужны различные средства автоматизации и чем их больше тем лучше и отрицание этого факта есть ошибка!
Вот в том и прикол, что практики бывают разные и решаются они сильно разными способами. И большая из них вообще не автоматизируется. Ибо специализированные на всю голову.

Твое решение - оно решает только твои, любительские проблемы. И то не факт. Я же тебе говорю, что я не вижу, какие мои задачи могла бы твоя поделка решить. Ибо сильно дубовая. А значит - бесполезная.

Я тебе тут пытаюсь сказать, что твоя библиотека далека от потребностей реальной работы. А значит ты пишешь хз что для хз кого. Вот и всё.
0
0 / 0 / 0
Регистрация: 09.06.2023
Сообщений: 19
09.11.2023, 13:16  [ТС] 38
Я согласен, что для Ваших задач средство возможно и не нужно, но почему Вы не допускаете использование для других задач! У меня за мою много десятилетнюю практику десятки моих и коллективных разработок их разных областей (образования, строительства и промышленности) находились или находятся в промышленной эксплуатации и я не хуже Вас понимаю, что единого средства автоматизации нет, но отдельные задачи или их части подаются автоматизации и к этому нужно стремиться, а не клепать оригинальные программы с плохими различными интерфейсами для пользователей. Я думаю тема для разговора исчерпана. Останемся на своих позициях (это хорошо, что они есть). Желаю Вам успехов и удачи и корректного отношения к своим оппонентам.
0
09.11.2023, 13:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2023, 13:16
Помогаю со студенческими работами здесь

Модифицированный метод Эйлера (Выполнить без использования элементов программирования)

Создание постоянного соединения с удаленным сервером
Суть вопроса в том как реализовать схему клиент-сервер. (сервер удаленный) задача такая: 1....

Средство разработки на языке программирования Java
Напишите ссылку или название, официальной среды программирования на языке программирования Java....

1.9 Для включения отборов в списках (обычных форм) по содержимому табличных частей объектов и их свойств, неото
Доброго времени суток! 1.9 Для включения отборов в списках (обычных форм) по содержимому ...

Батники для автоматизации использования PuTTY
Всем доброго времени суток! Задачка такая: Имееются некие сервера, IP адреса которых сохранены...

Расширения и дополнения для автоматизации программирования на С#
Использую эти http://msdn.microsoft.com/ru-ru/subscriptions/hh162051.aspx Есть еще какие-нибудь...


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru