Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
6 / 6 / 1
Регистрация: 09.02.2016
Сообщений: 296

Хранение данных в приложении

11.08.2017, 00:40. Показов 4898. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую форумчан!
Есть такая задача - необходимо хранить список ФИО клиентов, их телефоны и адреса, чтобы при необходимости этот список можно было легко увеличить либо сократить.
Первое что пришло в голову - создать такую базу сведений в Эксель и загружать при каждом запуске программы, но работа с Экселем жрет много ресурсов, что может сказаться на скорости работы ПО на слабых ПК.
Вторая мысль - SQL. Ранее с ним не работал, поэтому создал на скорую руку таблицу и забил ее данными. Только вот встала проблема - не могу получить значение какой-либо конкретной "ячейки" (просто фамилию или телефон конкретного клиента).
Подскажите пожалуйста, как лучше мне реализовать задуманное?
P.S. Работаю в Visual Studio 2015, в настоящий момент пишу на VB.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2017, 00:40
Ответы с готовыми решениями:

Хранение данных в приложении
Здравствуйте!;) какие еще могут быть варианты хранения данных в пользовательском приложении, кроме xml-файлов и БД SQL??

Хранение данных в приложении-справочнике
Есть задача написать приложение со списком заведений города... Есть текстовой файл с набором данных в виде: Название организации, адрес,...

Хранение данных в приложении без бд
Всем привет. Как лучше хранить небольшое количество информации, типа данных пользователя, настроек приложения, на устройстве? Первое что...

24
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
11.08.2017, 07:07
Цитата Сообщение от a13428711 Посмотреть сообщение
работа с Экселем жрет много ресурсов, что может сказаться на скорости работы ПО на слабых ПК
Цитата Сообщение от a13428711 Посмотреть сообщение
Есть такая задача - необходимо хранить список ФИО клиентов
А программа зачем нужна?
Храните список в Экселе без программы.
1
1728 / 1594 / 166
Регистрация: 25.07.2015
Сообщений: 2,671
11.08.2017, 07:42
a13428711, поддерживаю SoftIce.
Вам совершенно без надобности городить огород с VB.NET при таких потребностях.
Если всё-же хочется красоты а-ля форма управления/поиска , то в том же экселе
создайте эту форму с помощью VBA и макросов и будет вам счастье ))
1
 Аватар для farced
21 / 21 / 18
Регистрация: 03.05.2016
Сообщений: 100
11.08.2017, 07:43
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
DIM DATA_SPEC_TBL  AS DataTable= New DataTable("T")
Using con As New SqlConnection("Data Source=192.168.0.1;Initial Catalog=ff;Persist Security Info=True;User ID=admin;Password=admin")
                Using cmd As New SqlCommand()
                    Using da As New SqlDataAdapter(cmd)
                        cmd.Connection = con
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.CommandText = "new_stored_proc"
                        cmd.Parameters.Clear()
                            cmd.Parameters.AddWithValue("@id", "11")
                        da.Fill(DATA_SPEC_TBL)
                    End Using
                End Using
            End Using
затем работаешь с datatable и достаешь с нужных полей нужную информацию
2
11.08.2017, 07:49

Не по теме:

Цитата Сообщение от farced Посмотреть сообщение
Using con As New SqlConnection
Ставить MSSQLSERVER ради таблички клиентов с телефонами ?=-O
Сильно !!! :D
Excel по сравнению с данным решением просто на диете по потреблению ресурсов будет :D

2
6 / 6 / 1
Регистрация: 09.02.2016
Сообщений: 296
11.08.2017, 20:25  [ТС]
Ну не надо смеяться . Прога работает с вордом и генерирует различные бланки (запросы, уведомления и прочую шушару). Хранить можно и в экселе, но при загрузке данных образуется хорошая пауза, которая мне очень не нравится.
Я правильно понимаю, что я создаю базу SQL с помощью сервера, а когда скомпилирую программу она уже будет в ее составе и сам SQL сервер для ее работы будет не нужен?
Блин, неужели нет способа хранить простые табличные данные без использования ресурсоемких приложений?
И еще вопрос на этой теме. А нельзя сохранять данные в самом приложении? То есть, создаем пустой массив с запасом (скажем 100 элементов) и программно получаем из него данные. Затем при необходимости добиваем его его через форму новыми значениями либо удаляем ненужное. Это был бы идеальный вариант . Главное, чтоб это все сохранилось после закрытия программы .
Вот с микроконтроллерами все просто - берем Flash память, бронируем там переменные или массивы, а потом пишим в них что душе угодно. И в памяти это может храниться долгие годы, даже после отключения питания
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
11.08.2017, 20:31
Цитата Сообщение от a13428711 Посмотреть сообщение
Блин, неужели нет способа хранить простые табличные данные без использования ресурсоемких приложений?
Ну и храните в Excel без всяких приложений, в чём проблема?
0
6 / 6 / 1
Регистрация: 09.02.2016
Сообщений: 296
11.08.2017, 20:33  [ТС]
Цитата Сообщение от a13428711 Посмотреть сообщение
Хранить можно и в экселе, но при загрузке данных образуется хорошая пауза, которая мне очень не нравится.
Ну писал же...
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
11.08.2017, 20:38
Что значит "хорошая пауза" ? Две секунды на загрузку Excel ? Раз в день ?
0
6 / 6 / 1
Регистрация: 09.02.2016
Сообщений: 296
11.08.2017, 20:46  [ТС]
2-3 секунды при каждом этапе формирования бланка. Это не смертельно, но постоянно напоминает мне об убогости моего кода .
Судя по ответам, я так понимаю, что лучшего решения не существует. Остался только вопрос - как ведет себя это решение (с точки зрения скорости работы - быстрее экселя или нет):
Цитата Сообщение от farced Посмотреть сообщение
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
DIM DATA_SPEC_TBL  AS DataTable= New DataTable("T")
Using con As New SqlConnection("Data Source=192.168.0.1;Initial Catalog=ff;Persist Security Info=True;User ID=admin;Password=admin")
                Using cmd As New SqlCommand()
                    Using da As New SqlDataAdapter(cmd)
                        cmd.Connection = con
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.CommandText = "new_stored_proc"
                        cmd.Parameters.Clear()
                            cmd.Parameters.AddWithValue("@id", "11")
                        da.Fill(DATA_SPEC_TBL)
                    End Using
                End Using
            End Using
p.s. Блин, как тут нормально процитировать чужое сообщение?
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
11.08.2017, 22:26
a13428711,
Простой вариант с сериализацией. Думаю, что вы сможете самостоятельно это расширить и углубить.
Вложения
Тип файла: rar TelBook.rar (12.0 Кб, 39 просмотров)
2
11.08.2017, 22:50

Не по теме:

Цитата Сообщение от a13428711 Посмотреть сообщение
Блин, как тут нормально процитировать чужое сообщение?
Выделяешь текст который нужно процитировать и нажимаешь кнопку "Цитировать" которая появляется под текстом. Единственное что код так плохо цитируется. Лучше скопировать его вручную и не забыть добавить нужные теги.

1
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
11.08.2017, 23:03
a13428711, может вам sqlite подойдет? Это автономная БД.
2
6 / 6 / 1
Регистрация: 09.02.2016
Сообщений: 296
12.08.2017, 00:29  [ТС]
Цитата Сообщение от ovva Посмотреть сообщение
Простой вариант с сериализацией. Думаю, что вы сможете самостоятельно это расширить и углубить.
Я так понимаю, что Вы все на XML построили? В принципе мне нравится. Начну завтра изучать основы этого языка
Цитата Сообщение от Дядя Корней Посмотреть сообщение
может вам sqlite подойдет? Это автономная БД
Тоже интересно. Нужно будет ознакомиться с этим...
Завтра буду пытать свой мозг, если что, то я вернусь
0
1728 / 1594 / 166
Регистрация: 25.07.2015
Сообщений: 2,671
12.08.2017, 05:48
Цитата Сообщение от a13428711 Посмотреть сообщение
Ну не надо смеяться
Это нервный смешок от недоумения
Вам было предложено убить назойливого комара баллистической ракетой, говоря образно,
вместо того , чтобы прихлопнуть его ладошкой.

Цитата Сообщение от a13428711 Посмотреть сообщение
Блин, неужели нет способа хранить простые табличные данные без использования ресурсоемких приложений?
Если всё же нужна оболочка в VB.NET , то имя им -легион.
на вскидку :
-используемый вами эксель, но не как программа , а именно как хранилище.
-обычный текстовый файл любого формата
-сериализация , предложенная ovva (оптимально для данной задачи, при условии, что
хранилище "плоское" , т.е. не имеющее реляционных связей , а тупо одна табличка)
-sqlite, предложенный Дядя Корней, но это уже не просто табличка, а база данных.
Из минусов его использования - подключение внешнего (стороннего) коннектора (библиотеки) для
работы с ней, а так же некоторые несовместимости.
-access , тоже база данных- оптимальна для хранения небольшого количества данных, т.к. оба продукта от Microsoft,
не требующие ни дополнительных библиотек , ни танцев с бубном при взаимодействии, то как кодировка например,периодически возникающая с sqlite.

Цитата Сообщение от a13428711 Посмотреть сообщение
Вот с микроконтроллерами все просто - берем Flash память
Ключевые слова "Flash память" , т.е. всё равно некое хранилище.Уберите его, оставив только оперативку
и вся информация в ней грохнется не то , что после вкл/выкл питания , а просто при перезапуске программы.
2
6 / 6 / 1
Регистрация: 09.02.2016
Сообщений: 296
12.08.2017, 09:07  [ТС]
Цитата Сообщение от Kulma Посмотреть сообщение
-обычный текстовый файл любого формата
Я вот про это тоже думал. Только у меня предполагается несколько таблиц (в одной физ. лица, в другой организаии частные, в третьей государственные, и у каждой должны быть поля типа Адрес, Наименование, Телефон, Емаил и нескольуо других, в зависимости оттого физ. лицо он, контора или гос. контора.
Как правильно структурировать такое в текстовом файле, чтоб при необходимости можно было легко отыскать нужную "ячейку" либо добавить/удалить ее?
Не откажусь и от ссылки по данной теме, так как сам так и не нашел ответа....
0
1728 / 1594 / 166
Регистрация: 25.07.2015
Сообщений: 2,671
12.08.2017, 11:47
a13428711, изначально речь шла о телефонном справочнике с адресами и телефонами
По вновь поставленной задаче я бы делал в аccess (мне так проще оперировать данными) , хотя
это достаточно просто воссоздать и в txt-файле
Вариантов , на мой взгляд , два :
1) Вы создаёте на всех одну таблицу с дополнительными тремя логическими (true|false или 1|0) полями :
физ. лица
контора
гос. контора
При считывании данных из неё по признаку ,например, true|1 в одном из этих полей ,программа понимает
какие поля выводить для просмотра и доступны для редактирования/добавления и т.д.
2) более простой .
Вы создаёте 1 таблицу с данными клиентов и связующую со списком
физ. лица
контора
гос. контора
Далее , просто выбирая из списка связующей таблицы нужный тип клиента вы подгружаете
список клиентов по выбранному типу и оперируете ими, выводя на форму/или
разрешая редактировать|заполнять только те поля,которые присущи данному типу клиентов .
Миниатюры
Хранение данных в приложении  
Вложения
Тип файла: zip Db1.zip (23.3 Кб, 17 просмотров)
0
12.08.2017, 12:47

Не по теме:

Только у меня предполагается несколько таблиц
Потом оказывается, что таблицы имеют связи, а записи в них д.б. уникальны и т.д. Просто удивительно, что вы не можете описать задачу на родном языке, но пытаетесь это сделать на другом (чужом и искусственном) языке.

3
6 / 6 / 1
Регистрация: 09.02.2016
Сообщений: 296
12.08.2017, 16:11  [ТС]
Цитата Сообщение от Kulma Посмотреть сообщение
изначально речь шла о телефонном справочнике с адресами и телефонами
Не совсем то. Попробую расписать понятнее.
Необходимо хранить список ФИО клиентов, их телефоны, адреса и другие данные, чтобы при необходимости этот список можно было легко увеличить либо сократить, желательно через форму программы.
Этот список нужен для того, чтобы формировать бланки документов, т.е. программа берет, к примеру, адрес контрагента и вставляет его через Word в поля с адресами, потом берет телефон и.т.д. Таким образом, нужно обеспечить программе возможность обратиться к любому элементу нашей "таблицы".
Цитата Сообщение от Kulma Посмотреть сообщение
По вновь поставленной задаче я бы делал в аccess (мне так проще оперировать данными) , хотя
это достаточно просто воссоздать и в txt-файле
Вариантов , на мой взгляд , два :
А как мне создать таблицу в txt, т.е. как программа поймет где начинается новая строка/столбец/ячейка? Нужны тэги или что-то типа того?
0
1728 / 1594 / 166
Регистрация: 25.07.2015
Сообщений: 2,671
12.08.2017, 17:38
Цитата Сообщение от a13428711 Посмотреть сообщение
А как мне создать таблицу в txt, т.е. как программа поймет где начинается новая строка/столбец/ячейка? Нужны тэги или что-то типа того?
Упс...нежданчик
Изучайте
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2017, 17:38
Помогаю со студенческими работами здесь

Хранение учетных данных в приложении
Как правильно хранить учетные данные (логин/пароль) в приложении, чтобы их не смогли узнать посторонние лица?

Хранение данных в приложении, какое хранилище предпочтительнее
Добрый день, хочу задать оочень простой вопрос по хранению данных. Приложение получает данные (например парсит из .csv файла) по акциям...

Хранение данных (из БД) в приложении как singleton и визуальное программирование
Хочу задать вопрос: как правильно организовать хранение данных (из БД) в приложении, доступе к ним в режиме singleton, и при этом иметь...

Хранение информации в приложении
Доброго времени суток. Пытаюсь разобраться с хранением данных в приложение. есть Класс MainVars class MainVars { private...

Хранение закрытого ключа ЭП в приложении
Добрый день! Может кто сталкивался с такой задачей, как безопасно хранить и использовать закрытый ключ в разрабатываемом приложении,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru