|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
|||||||||||
Поиск по базе данных07.03.2019, 21:08. Показов 1813. Ответов 22
Метки нет (Все метки)
Доброго времени суток!
Есть клиент и сервер, написаны на WPF с помощью WCF. База данных сделана в mdb формате (Access). Есть метод поиска по базе
DataGrid
Client.Search просто идет запрос в метод, который самый первый тут.И если клиент и сервер на одном компьютере, то запрос-ответ проходят быстро и без проблем. А если уже клиент на другом компьютере, то все это происходит с задержкой от 0.2-1 секунды(на вскидку). Как можно ускорить процесс отображения результатов? Я пробовал передавать данные таблицы в массиве клиенту и уже клиент без запросов серверу будет осуществлять поиск, но DataGrid не получается заполнить из массива. Есть у кого мыслишки? Уходить от Access не вариант
0
|
|||||||||||
| 07.03.2019, 21:08 | |
|
Ответы с готовыми решениями:
22
Поиск в базе данных Поиск в базе данных Поиск в базе данных |
|
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,164
|
||||
| 08.03.2019, 06:22 | ||||
IList<T>, в том числе и массивы.![]() Добавлено через 1 минуту И не надо конкатенацией параметры в запрос передавать. ИСпользуйте параметризированные запросы. Это не только исключит возможность SQL-инекций, но и повлияет на производительность, ибо СУБД сможет закешировать запрос, а при повторном его приходе, просто подставить параметры.
1
|
||||
|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
||
| 08.03.2019, 08:26 [ТС] | ||
|
2. Может важно, но у меня wpf и там DataGrid. Я делал раньше проект в WinForms и таблица глючила только пока я ее скролил А по поводу параметров - только вчера вечером узнал про них, до этого везде другой синтаксис видел. Попробую переписать запросы потом. DataGrid принимает значение переменной DataSet и у меня не получилось ни в какой другой тип данных их перенести, чтобы хранить их в переменной у клиента и осуществлять поиск строго в рамках компьютера клиента (надеюсь, что не запутанно написал)
0
|
||
|
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,164
|
|
| 08.03.2019, 08:52 | |
|
Felix Felicis, сначала найдите что тормозит. Ответ от базы или визуализация. И если это ответ от базы, то что именно не так: база долго думает или передача по сети долгая.
Без этого начинать что-то оптимизировать не имеет смысла.
0
|
|
|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
||
| 08.03.2019, 08:56 [ТС] | ||
|
0
|
||
|
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,164
|
|
| 08.03.2019, 12:35 | |
|
Felix Felicis, а долгой она может быть из-за объёма передаваемых данных.
0
|
|
|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
|
| 08.03.2019, 13:42 [ТС] | |
|
Usaga, тогда вопрос в том, что можно ли как то из массива string данные заполнить в DataGrid?
0
|
|
|
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,164
|
|
| 08.03.2019, 13:43 | |
|
Felix Felicis, массив строк? Строки в таблице из одной колонки, чтоли, будут?
0
|
|
|
13 / 11 / 2
Регистрация: 07.03.2019
Сообщений: 29
|
|
| 08.03.2019, 13:47 | |
|
Можно top 1 попробовать добавить - посмотреть, будет ли тормозить на 1 записи. Если будет, то возможно с сетью что-то не то.
0
|
|
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
||
| 08.03.2019, 15:01 | ||
|
0
|
||
|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
|
| 08.03.2019, 15:05 [ТС] | |
|
Usaga, почему из одной? Будет Igr_ok, а как фильтровать данные в DataSet?
0
|
|
|
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,164
|
|
| 08.03.2019, 15:17 | |
|
Felix Felicis, потому, что DataGrid воспринимает (что логично) каждый элемента массива\коллекции как отдельную запись.
Вам нужен не массив строк, а массив нормальных объектов, где каждое свойство будет соответствовать своей ячейке в строке.
0
|
|
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
||
| 08.03.2019, 16:03 | ||
|
https://docs.microsoft.com/en-... ew-control https://docs.microsoft.com/en-... work-4.7.2 2.DataTable.DataView https://docs.microsoft.com/en-... work-4.7.2 3.Используя Linq.
0
|
||
|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
||||||
| 09.03.2019, 01:31 [ТС] | ||||||
|
Igr_ok, это для WinForms же, а я пишу в WPF
Добавлено через 3 минуты Usaga, Этим методом я экспортирую БД
DataGrid
0
|
||||||
|
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,164
|
|
| 09.03.2019, 07:10 | |
|
Felix Felicis, нафига вы получаемые данные склеиваете в строку? Вы как её потом на ячейки разбивать собрались? Заведите класс под данные получаемые из базы и заполняйте массив объектами этого класса. DataGrid может работать с такими вещами спокойно.
0
|
|
|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
||||||
| 09.03.2019, 09:26 [ТС] | ||||||
|
Usaga, делаю массив строк BD, передаю клиенту в массив g и данные заношу в новый файл Access, который сохранил пользователь у себя на компьютера
0
|
||||||
|
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,164
|
|
| 09.03.2019, 09:47 | |
|
Felix Felicis, эта болезнь называется "строковая типизация". Проявляется в виде неуталимого желания везде и всюду использовать строки или массивы строк.
Заведите класс, описывающий данные, которыми хотите работать. Передавайте этот класс методу сохранения в базу. Загружайте в него данные, приходящие из базы. Не используйте конкатенацию для передачи параметров в запрос. Это небезопасно, непроизводительно и выглядит ужасно. Добавлено через 16 минут Ещё один плохой момент: имя таблицы заменяемо, но список полей тот же самый. Это значит, что в базе как минимум несколько абсолютно идентичных таблиц. Это очень хреновая архитектура базы. Копипаста.
0
|
|
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
||
| 09.03.2019, 10:44 | ||
|
0
|
||
|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
|||||||||||
| 09.03.2019, 17:44 [ТС] | |||||||||||
0
|
|||||||||||
|
13 / 11 / 2
Регистрация: 07.03.2019
Сообщений: 29
|
||
| 09.03.2019, 17:48 | ||
0
|
||
| 09.03.2019, 17:48 | |
|
Помогаю со студенческими работами здесь
20
Поиск в базе данных Поиск по базе данных Поиск в Базе Данных
Поиск по базе данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|