Форум программистов, компьютерный форум CyberForum.ru

Windows Phone и локальная БД - Windows Phone

Восстановить пароль Регистрация
 
SpawnUnDead
 Аватар для SpawnUnDead
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 16
28.10.2014, 05:37     Windows Phone и локальная БД #1
Доброго времени суток. Пишу Сюда не часто, стараюсь находить ответы сам и не загромождать глупыми вопросами форум.
Но тут никак не могу найти решения.

Необходима локальная БД для моего приложения. Я так понял что надо использовать SQLite. Я разобрался с созданием самой БД, с этим проблем не было.
Как мне работать с ним через моё приложение. Необходимо считывать и записывать информацию.

Я переходил по всем возможным ссылкам что упоминались в похожих темах. Много где чего вычитывал. Но так и не понял простой реализации. Везде предлагают создавать БД в коде.

Прошу людей сталкивающихся с этим и разобравшихся скинуть мне живой пример, а не ссылки на статьи что я и так прочитал.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
28.10.2014, 10:45     Windows Phone и локальная БД #2
Все очень подробно разжевано. Сам делал по этому примеру. Потом допиливал до нужного результата.
krupa
 Аватар для krupa
106 / 106 / 27
Регистрация: 13.12.2010
Сообщений: 407
28.10.2014, 15:43     Windows Phone и локальная БД #3
Local Database Sample
SpawnUnDead
 Аватар для SpawnUnDead
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 16
28.10.2014, 18:59  [ТС]     Windows Phone и локальная БД #4
Спасибо за пример. Попробую разобраться. Тема ещё, если что, актуальна.

А эту статью по ссылке я первым делом читал, из практического руководства на msdn ведёт. Я ж говорил, я читал ваши посты на форуме и на статьи не надо давать ссылок.
A4Tech_Man
 Аватар для A4Tech_Man
51 / 51 / 7
Регистрация: 23.05.2013
Сообщений: 462
28.10.2014, 19:58     Windows Phone и локальная БД #5
я скажу как понимаю. берем класс и обозначаем его атрибутом [Table](что то вроде паттерна актив рекорд). т.е. наш класс будет таблицей, а поля в нем соответственно полями таблицы [Column]. Там можно в атрибутах указывать доп. настройки типа(первичный, там не нулл и тд). потом надо создать новый класс у унаследовать от DataContext. И там запилить статический путь для БД(чтобы можно было в любой момент обратиться).
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public class ToDoDataContext : DataContext
{
    // Specify the connection string as a static, used in main page and app.xaml.
    public static string DBConnectionString = "Data Source=isostore:/ToDo.sdf";
 
    // Pass the connection string to the base class.
    public ToDoDataContext(string connectionString)
        : base(connectionString)
    { }
 
    // Specify a single table for the to-do items.
    public Table<ToDoItem> ToDoItems;//Вот сдесь будет твой БД(инициализируешь класс при запуске приложухи.)
}
не забудь проверять каждый раз создан ли БД
C#
1
2
3
4
5
6
7
8
using (ToDoDataContext db = new ToDoDataContext(ToDoDataContext.DBConnectionString))
{
    if (db.DatabaseExists() == false)
    {
        //Create the database
        db.CreateDatabase();
    }
}
А для создания связей с внешними ключами более сложный код. Как здесь. Указываешь внешний ключь, а потом коллекцию запиливаещь для связей(т.к. их может быть много). Если присмотреться как ALTER TABLE ADD CONSTRAINT получается, тока под свой манер
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
private string _ownerId;
    [Column(IsPrimaryKey = true, CanBeNull = false)]
    public string OWNER_ID
    {
        get { return _ownerId; } 
        set
        {
            if (value == OWNER_ID)
                return;
            RaisePropertyChanging("OWNER_ID");
            _ownerId = value;
            RaisePropertyChanged("OWNER_ID");
        }
    }
 
    private EntityRef<User> _ownerRef;
    [Association(Name = "FK_USER_ACCOUNTS", ThisKey = "OWNER_ID", OtherKey = "ID", Storage = "_ownerRef", IsForeignKey = true)]
    public User Owner { 
        get { return _ownerRef.Entity; }
        set 
        { 
            User previousValue = _ownerRef.Entity;
            if(previousValue==value)// && !_ownerRef.HasLoadedOrAssignedValue)
            {
                return;
            }
            if(previousValue!=null)
            {
                _ownerRef.Entity = null;
                previousValue.Accounts.Remove(this);
            }
            RaisePropertyChanging("Owner");
            _ownerRef.Entity = value;
            if(value!=null)
            {
                value.Accounts.Add(this);
                OWNER_ID = value.ID;
            }
            else
            {
                OWNER_ID = string.Empty;
            }
            RaisePropertyChanged("Owner");
        }
    }
SpawnUnDead
 Аватар для SpawnUnDead
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 16
28.10.2014, 20:50  [ТС]     Windows Phone и локальная БД #6
A4Tech_Man, скажите. у меня готовая БД. мне её просто добавить к проекту , в свойствах выставить "копировать всегда" и она поместиться в изоляционное хранилище приложения при компиляции, я правильно понимаю?

Ещё такой вопрос.Читал как сделать снимок приложения себе на компьютер. Надо использовать ISETool. Но она у меня сразу закрывается. Я если что тестирую на телефоне сразу.
A4Tech_Man
 Аватар для A4Tech_Man
51 / 51 / 7
Регистрация: 23.05.2013
Сообщений: 462
28.10.2014, 21:25     Windows Phone и локальная БД #7
скорее надо как ресурс и он потом должен быть в вашем xap файле всегда. насчет фотографий в wp7 там с экрана эмуля копируешь обычными ножницами,а в wp8 есть специальная функция. там на эмуле будет '>>' такая примерна стрелка ее нажимаешь и там во вкладке выбираешь снимок экрана. а на смартфоне вроде горячие клавиши есть. смотри в инете.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2014, 12:12     Windows Phone и локальная БД
Еще ссылки по теме:

Обмен данными между Windows Phone и Windows по wi-fi Windows Phone
Windows Phone Windows Phone
Windows Phone Анкета на с# на windows phone
Правда ли что на windows ниже 8 нет никакой возможности разрабатывать под windows phone Windows Phone

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
krupa
 Аватар для krupa
106 / 106 / 27
Регистрация: 13.12.2010
Сообщений: 407
29.10.2014, 12:12     Windows Phone и локальная БД #8
Цитата Сообщение от SpawnUnDead Посмотреть сообщение
скажите. у меня готовая БД. мне её просто добавить к проекту , в свойствах выставить "копировать всегда" и она поместиться в изоляционное хранилище приложения при компиляции, я правильно понимаю?
нет, она будет ресурсами проекта при Copy Always.
Потом придётся при первом запуске брать и копировать её из ресурсов и Isolated Storage
Yandex
Объявления
29.10.2014, 12:12     Windows Phone и локальная БД
Ответ Создать тему
Опции темы

Текущее время: 16:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru