Опубликован: 19.03.2014 | Уровень: для всех | Доступ: платный
Лекция 13:

Организация доступа к базе данных SQL Server Compact в серверных сценариях гибридных мобильных приложений

Добавление клиентских данных в базу данных на сервере

Добавление данных в таблицу Client базы данных DB_Mobile.sdf выполним оператором INSERT языка SQL. Для этого необходимы следующие действия в окне проекта "WebApp_Mobile".

  1. Перейдите в "Конструктор" созданной нами формы WebForm_Mobile.aspx. Используя панель элементов, установите на форме объект SqlData Source2, посредством которого можно будет добавлять данные оператором INSERT. Выделите элемент SqIDataSource2, щелкните по нему правой кнопкой мыши и из выпадающего меню выберите пункт "Настроить источник данных". В окнах мастера установите тот же источник данных, что и для SqIDataSource1, определите специальный оператор INSERT. Собственно сам оператор INSERT можете построителем запросов не настраивать, так как мы его настроим в C# - коде проекта. Содержимое окон мастера для INSERT:

    Рис. 23.15.

    Рис. 23.16.

    Рис. 23.17.
  2. Создайте C# - код для настройки оператора INSERT при помощи объекта SQLDataSource2. Для этого добавьте в обработчики событий Load_Page и Button1Click средства активизации оператора INSERT. Измененный C# - код модуля WebForm_Mobile.aspx.cs будет иметь вид:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApp_Mobile
    {
     public partial class WebForm_Mobile : System.Web.UI.Page
     {
     protected void Page_Load(object sender, EventArgs e)
     {
    // принять данные от клиентского Cardova -приложения,
     //расположенного на мобильном телефоне
     string Name = Request["name"];
     string Lastname = Request["lastname"];
     string Country = Request["country"];
     // Ответ сервера клиенту
     Label1.Text += Name + " " + Lastname + " " + Country;
     // Добавить в базу данных
     SqlDataSource2.InsertCommand = "INSERT INTO Client(name, lastname,country) 			
    VALUES ('" + Name +"','" + Lastname + "','" + Country + "' )";
     SqlDataSource2.Insert();
    	 //Обновление данных таблицы
     GridView1.DataBind();
     GridView1.Visible = true;
     //Очистить поля ввода
     TextBox1.Text = " ";
     TextBox2.Text = " ";
     TextBox3.Text = " ";
     }
    
     protected void Button1_Click(object sender, EventArgs e)
     {
     // Принять данные от клиента из формы серверного приложения
     string Name = TextBox1.Text;
     string Lastname = TextBox2.Text;
     string Country = TextBox3.Text;
     // Ответ сервера клиенту
     Label1.Text += Name + " " + Lastname + " " + Country;
     // Добавить в базу данных
     SqlDataSource2.InsertCommand = "INSERT INTO Client(name, lastname,country) 			
    VALUES ('" + Name +"','" + Lastname + "','" + Country + "' )";
     SqlDataSource2.Insert();
     //Обновление данных таблицы
     GridView1.DataBind();
     GridView1.Visible = true;
    	 //Очистить поля ввода
     TextBox1.Text = " ";
     TextBox2.Text = " ";
     TextBox3.Text = " ";
     }
     }
    }

Результат тестирования серверного сценария, который получает данные от мобильного приложения (виджета) и сохраняет их в базе данных SQL Server Compact:

Дмитрий Белов
Дмитрий Белов

Каким образом можно создать точку останова? Например, если в Лекции 8 в примере, который демонстрирует возможность <canvas> для работы с готовыми изображениями (последний в лекции) в цикле
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
sx = 300 * i; sy = 350 * j;
contextNow.drawImage(img, sx, sy);}
поставить точку останова, то при запуске отладки проекта точка становится пустой окружностью с сообщением: В настоящий момент попадание в точку останова не произойдет. Нет загруженных символов для этого документа. Как все-таки создать точку останова и пройти по шагам весь код?

Акмарал Кубыгулова
Акмарал Кубыгулова
Казахстан, Астана
Илья Макаров
Илья Макаров
Россия, Пермь, МОУ СОШ 71, 2013