Сохранение и чтение данных из базы данных Azure в приложение Windows 8

У меня есть экземпляр базы данных Azure и приложение для Windows 8, работающее на устройстве ARM. Мне нужно подключиться к базе данных Azure и сохранить данные в базе данных и получить некоторые поля базы данных. Я знаю, что могу подключить базу данных с помощью мобильных служб Azure, но в руководстве показано только чтение данных. Есть ли способ сохранить данные в базе данных?

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


person user861059    schedule 05.05.2013    source источник


Ответы (1)


Конечно, в руководстве показано, как сохранять данные - элементы списка ToDo. На шаге 8 ниже, где вы перейдете по этой ссылке, вы увидите вызов InsertAsync, который, в свою очередь, запускает связанный скрипт. Или, если вы работали с демонстрационным приложением, которое можно настроить на портале Windows Azure, вы увидите такой код:

    private async void InsertTodoItem(TodoItem todoItem)
    {
        // This code inserts a new TodoItem into the database. When the operation completes
        // and Mobile Services has assigned an Id, the item is added to the CollectionView
        await todoTable.InsertAsync(todoItem);
        items.Add(todoItem);                        
    }

    ...

    private void ButtonSave_Click(object sender, RoutedEventArgs e)
    {
        var todoItem = new TodoItem { Text = TextInput.Text };
        InsertTodoItem(todoItem);
    }

Затем на портале Windows Azure, если вам нужно выполнить какие-либо манипуляции с объектом, прежде чем он попадет в базу данных, вы можете сделать это с помощью сценария node.js. Например, на изображении ниже показано, как заменить то, что Text из TodoItem было установлено в коде, жестко закодированным «замененным текстом», иллюстративным, но не очень полезным :)

введите описание изображения здесь

person Jim O'Neil    schedule 06.05.2013
comment
Спасибо за помощь. Я могу спросить здесь что-то глупое, но знаете ли вы, как отображать элементы базы данных в представлении списка в XAML? - person user861059; 07.05.2013
comment
взгляните на образец приложения ToDo для Windows 8 (вы можете загрузить полное приложение при создании новой службы Windows Azure Mobile). Он использует привязку данных для отображения списка элементов в базе данных (конечно, после добавления нескольких элементов). - person Jim O'Neil; 07.05.2013
comment
Я последовал примеру и использую следующий код: var table = App.MobileService.GetTable ‹UserTransactions› (); var tableView = await table.Where (t = ›t.Account == account) .ToCollectionView (); TransactionsView.ItemsSource = tableView; Однако вместо данных в таблице я получаю: ProjectName.UserTransactions 4 раза (это количество записей в таблице). Есть идеи, как вместо этого отображать фактические данные в таблице? - person user861059; 07.05.2013
comment
Вам необходимо настроить DataTemplate в своем ListView с отдельными элементами управления, которые отображают каждый элемент данных, а затем привязать содержимое этих элементов управления к отдельным полям UserTransactions ... например. ‹TextBox Text = {Binding ItemText} /› где ItemText - это поле UserTransactions (не уверен, что это действительно так :)). Список / коллекция UserTransactions должны быть свойством ItemsSource для этого ListView - person Jim O'Neil; 08.05.2013
comment
Спасибо - глупо с моей стороны забыть об этом. Что касается сценария вставки, показанного на отправленном вами изображении, я пытаюсь добавить сценарий, в котором пользователь может вставлять данные из одной таблицы базы данных в другую. Таблицы представлены в разных схемах. Мне нужно только вставить конкретный столбец в другое конкретное поле - сумму, полученную при вставке в поле «Баланс» конкретного пользователя. Я пробовал следующий сценарий, но ничего не происходит. Есть идеи относительно того, что я делаю неправильно? dl.dropboxusercontent.com/u/23509610/script.txt - person user861059; 08.05.2013