locked
Обновление локальной базы данных с сервера RRS feed

  • Вопрос

  • Здравствуйте, посоветуйте какой-нибудь хороший мануал по обновлению локальной базы данных приложения с базы данных сервера. Или хотя бы примерно объясните как это работает. Текстовый файл с командами загружать или xml... Что-то гугл не помогает.

    • Изменено Fat.Hansmer 16 февраля 2013 г. 11:54
    15 февраля 2013 г. 17:26

Ответы

  • Впринципе делать можно как вам угодно, задача же - передать даннные, код по вставке этих данных в локальную БД будет одинаков.

    А сами данные можно передать разными способами - начиная от файла, как вы написали в вопросе до использования сервисов. Сервисы (WCF, ASP.NET Web API, Azure) - это наиболее правильное взаимодействия клиента со сторонней базой данных. 

    WCF например может предоставлять вам данные в виде заполенных объектов какого-то вашего класса.

    Web API может возвращать json результат, который потом вы сами в приложении без труда обработаете.


    Для связи [mail]

    • Помечено в качестве ответа Fat.Hansmer 19 февраля 2013 г. 15:11
    • Снята пометка об ответе Fat.Hansmer 24 февраля 2013 г. 18:38
    • Помечено в качестве ответа Abolmasov Dmitry 28 февраля 2013 г. 7:16
    19 февраля 2013 г. 13:16
  • Сделал, в сервисе передается табличка.

    public List<Category> GetAllCategories(int uid)
            {
                DataClasses1DataContext context = new DataClasses1DataContext();
                var res = from Category category in context.Category select category;
                return res.ToList();
            }

    Пока ради теста вывел получаемые данные напрямую в листбокс.

            void client_GetAllCategoriesCompleted(object sender, GetAllCategoriesCompletedEventArgs e) 
            {
                CategoryListBox.ItemsSource = e.Result;
            }

    Теперь меня интересует как этот e.Result - как по нему циклом пройтись, чтобы занести данные в соответствующую таблицу локальной базы приложения. Пока пробую. Приведите, пожалуйста, пример кода, чтобы ускорить мне процесс.

    Или может даже удобней не в list задавать, а по-другому?

    PS. Для новичков вроде меня - хорошие ссылки об обновлении и WCF-сервисе:

    http://www.c-sharpcorner.com/uploadfile/urmimalapal/creating-a-windows-phone-7-application-consuming-data-using-a-wcf-service/

    http://djekmusic.blogspot.ru/2012/04/wcf.html

    http://kalinovsky.net/2012/03/07/1/ 





    • Изменено Fat.Hansmer 27 февраля 2013 г. 21:46
    • Помечено в качестве ответа Abolmasov Dmitry 28 февраля 2013 г. 7:15
    26 февраля 2013 г. 8:41

Все ответы

  • Привет

    Поясните, пожалуйста, вам нужно обновить только данные или у вас еще и схема таблиц изменилась? Обновление нужно выполнять в одну сторону (с сервера на клиент) или в обе?

    Спасибо


    Для связи [mail]

    19 февраля 2013 г. 13:04
  • Только данные и только в одну сторону с сервера на клиент.
    19 февраля 2013 г. 13:08
  • Впринципе делать можно как вам угодно, задача же - передать даннные, код по вставке этих данных в локальную БД будет одинаков.

    А сами данные можно передать разными способами - начиная от файла, как вы написали в вопросе до использования сервисов. Сервисы (WCF, ASP.NET Web API, Azure) - это наиболее правильное взаимодействия клиента со сторонней базой данных. 

    WCF например может предоставлять вам данные в виде заполенных объектов какого-то вашего класса.

    Web API может возвращать json результат, который потом вы сами в приложении без труда обработаете.


    Для связи [mail]

    • Помечено в качестве ответа Fat.Hansmer 19 февраля 2013 г. 15:11
    • Снята пометка об ответе Fat.Hansmer 24 февраля 2013 г. 18:38
    • Помечено в качестве ответа Abolmasov Dmitry 28 февраля 2013 г. 7:16
    19 февраля 2013 г. 13:16
  • Используй xml-файл. При загрузке файла чисти базу и загружай новые записи (с бд работают через linq-запросы). Если интересно, то могу прислать рабочий пример. Напиши на nail _ nasyrov @ mail . ru (без пробелов)
    23 февраля 2013 г. 21:36
  • Написал. Очень надеюсь, что поможет, спасибо.

    Начал немного разбираться в вопросе и хочу уточнить. Есть база на sql server, база моего приложения полностью дублирует ее. Пока нужно просто обновлять данные с сервера. Никак не могу найти хороший мануал для этого.  Этот пример уж слишком громоздкий.

    Вроде повсеместная операция. Ужели все сразу всё умеют? :)

    UPD. С грехом пополам настроил WCF сервис на сервере. Осталось разобраться как принимать данные в клиенте.




    • Изменено Fat.Hansmer 24 февраля 2013 г. 22:07
    24 февраля 2013 г. 18:33
  • Запустите сервис, а в клиенте через диалоговое окно Add Service Reference - добавьте ссылку на WCF, у вас будут сгенерированы автоматически прокси классы для работы с сервисом, после чего можно просто получить данные, вызывая методы этих классов.

    Если изменится сервис - придется обновлять на него ссылку


    Для связи [mail]

    25 февраля 2013 г. 6:31
  • Сделал, в сервисе передается табличка.

    public List<Category> GetAllCategories(int uid)
            {
                DataClasses1DataContext context = new DataClasses1DataContext();
                var res = from Category category in context.Category select category;
                return res.ToList();
            }

    Пока ради теста вывел получаемые данные напрямую в листбокс.

            void client_GetAllCategoriesCompleted(object sender, GetAllCategoriesCompletedEventArgs e) 
            {
                CategoryListBox.ItemsSource = e.Result;
            }

    Теперь меня интересует как этот e.Result - как по нему циклом пройтись, чтобы занести данные в соответствующую таблицу локальной базы приложения. Пока пробую. Приведите, пожалуйста, пример кода, чтобы ускорить мне процесс.

    Или может даже удобней не в list задавать, а по-другому?

    PS. Для новичков вроде меня - хорошие ссылки об обновлении и WCF-сервисе:

    http://www.c-sharpcorner.com/uploadfile/urmimalapal/creating-a-windows-phone-7-application-consuming-data-using-a-wcf-service/

    http://djekmusic.blogspot.ru/2012/04/wcf.html

    http://kalinovsky.net/2012/03/07/1/ 





    • Изменено Fat.Hansmer 27 февраля 2013 г. 21:46
    • Помечено в качестве ответа Abolmasov Dmitry 28 февраля 2013 г. 7:15
    26 февраля 2013 г. 8:41