Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Пишу прогу на Visual C# в связке с MS SQL Server 2008. И у меня возникла необходимость один раз выгрузить необходимые таблицы из бд в прогу и больше к нему не обращаться. Выгружаю в dataSet и при необходимости фильтрации данных опять делаю запрос к бд. А хотелось бы один раз сделать и все. Как это реализуется? Может Есть у кого пример или через какой инструмент? Мне хотя бы наводку или пример,а дальше сам разберусь.. Заранее спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 08:28 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3, А как ты будешь сохранять или обновлять данные, или как другой пользователь узнает что данные уже устарели? Но если загрузил все в dataSet то и запросы давай в dataSet а не в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 09:47 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3И у меня возникла необходимость откуда она возникла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 09:52 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
ИзопропилMihail3И у меня возникла необходимость откуда она возникла?Данный архитектурный тупик обычно возникает из-за невозможности или нежелания наладить нормальные корпоративные каналы связи, что в наше время всепроникающего интернета является абсолютной глупостью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 09:56 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
VIT2708_Mihail3, А как ты будешь сохранять или обновлять данные, или как другой пользователь узнает что данные уже устарели? Но если загрузил все в dataSet то и запросы давай в dataSet а не в БД Получается только строками в DataRow[] выгрузить по определенному условию.. Но мне это не подходит.. Алексей КИзопропилпропущено... откуда она возникла?Данный архитектурный тупик обычно возникает из-за невозможности или нежелания наладить нормальные корпоративные каналы связи, что в наше время всепроникающего интернета является абсолютной глупостью. Необходимость в связи с и без того большой нагрузки на сервер. Немного уточнения. Это для Кладра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 15:19 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Хотелось бы научиться оперировать с таблицами в программе с такой же легкостью, как Visual FoxPro например, я понимаю, что это уже субд. А сколько в интеренте не искал, так ничего дельного не нашел, как делать новые выборки из ДатаСетов, ДатаТаблов и тд. тп.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 15:21 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3, .. может, вы имеете в виду что-то типа выгружать данные в List<Object>, а к нему применить LINQ ? ... если я правильно понял ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 15:39 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3, а между запросами к страницам где это добро хранить собираетесь? выгрузите это добро (КЛАДР/ФИАС) в отдельную базу и ни в чём себе не отказывайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 17:23 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3VIT2708_Mihail3, А как ты будешь сохранять или обновлять данные, или как другой пользователь узнает что данные уже устарели? Но если загрузил все в dataSet то и запросы давай в dataSet а не в БД Получается только строками в DataRow[] выгрузить по определенному условию.. Но мне это не подходит.. А можна подробнее как должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 18:48 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Если правильно понял, то что Вы хотите сделать подпадает под понятие - репликации. В студии есть шаблон реплицируемого проекта на базе SQL Server Ce. В само приложение добавляется база SQL Server Ce которая реплицируется с главным SQL Server. Пользователь работает с локальной БД а затем вывполняется ее синхронизация с БД на сервере. Ваще этот маханизм придумали для мобильных приложений, которые не всегда имеют доступ к серверу, но и в Вашем варианте думаю это прокатит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2014, 09:17 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Вообщем, что я имею ввиду. Мне хотелось бы: SqlConnection cn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=www;Data Source=sql.www.local"); cn.Open(); string querry = @"SELECT Distinct(name), count, type, code FROM [Data].[dbo].[Names]"; SqlDataAdapter adapter = new SqlDataAdapter(querry, cn); adapter.Fill(ds, "1"); Вот я выгрузил в DataSet таблицу из бд, а как мне теперь из DataSet выгрузить данные с определенным условием, например где type=2 и поместить в comboBox. Выгрузить в DataRow нельзя так, как у comboBox я планирую использовать одно значение из таблицы как DisplayMember, а другое как ValueMember .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 10:43 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Или может у кого-то есть проект для работы с Кладр, хотелось бы почитать и посмотреть, как это реализовывается на C# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 10:45 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3, воспользуйтесь методом DataTable.Clone(), заполните получившуюся таблицу отфильтроваными данными и используйте в качестве DataSource для ComboBox. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 10:48 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3, где DataSet хранить то будете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 10:48 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3, Для вас написали Linq Грузим данные в datatable 1 раз Далее, при необходимости, делаем к ней запросы через Linq. У этого подхода есть свои плюсы и минусы, но делать так можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 11:11 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3, вы не знаете как веб работает? это запрос ответ - запросил данные - получил, хочешь еще - запроси снова если очччень хочется - то нужен кеш * либо на стороне клиента, т.е. в браузере, но там Visual C# и не пахнет * либо на стороне сервера - например в Session/Application/System.Runtime.Caching ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 11:31 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
ps но в случае кеша на сервере - запросами ответами к серверу не обойтись правильно же я понял, что вам надо избавиться от постоянных обращений к базе к таблицам кладра? один раз считать эту таблицу(ы) и хранить в памяти компа, и перенаправить все запросы к этому участку памяти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 11:35 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
17-77, Да. Понимаете правильно. Я либо, что то не понимаю, либо хз. Мне хочется сделать так: 1.Выгрузил все таблицы в DataSet1. 2. Выгружать в DataTable или новый DataSet из DataSet1 в соответствии с условиями Where. Не в DataRow, а именно в DataTable или DataSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 14:22 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail317-77, Да. Понимаете правильно. Я либо, что то не понимаю, либо хз. Мне хочется сделать так: 1.Выгрузил все таблицы в DataSet1. 2. Выгружать в DataTable или новый DataSet из DataSet1 в соответствии с условиями Where. Не в DataRow, а именно в DataTable или DataSet. .. тогда, как уже заметили выше - клонировать/копировать в новую DataTable через ImportRow, например, с помощью foreach с проверкой на соответствие фильтру (напр. .Contains() ) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 14:45 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
То есть, что то вроде этого: DataTable dtTarget = new DataTable(); dtTarget = dtSource.Clone(); DataRow[] rowsToCopy; rowsToCopy = dtSource.Select("key=2"); foreach (DataRow temp in rowsToCopy) { dtTarget.ImportRow(temp); } И не будет ли так медленнее, чем обратиться к серверу еще раз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 15:04 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
Mihail3То есть, что то вроде этого: DataTable dtTarget = new DataTable(); dtTarget = dtSource.Clone(); DataRow[] rowsToCopy; rowsToCopy = dtSource.Select("key=2"); foreach (DataRow temp in rowsToCopy) { dtTarget.ImportRow(temp); } И не будет ли так медленнее, чем обратиться к серверу еще раз? ...насчет медленнее - пробовать надо ... но, кстати, на этом форуме уже обсуждались темы типа LINQ vs foreach, и были ссылки на замеры - форич часто был быстрее ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 15:23 |
|
||
|
Работа с выгруженными данными, не обращаясь к серверу. С#
|
|||
|---|---|---|---|
|
#18+
... кстати, после ImportRow не забудьте .AcceptChanges() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 15:25 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38795947&tid=1356891]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 352ms |

| 0 / 0 |
