1

Я хочу разработать приложение в телефоне Windows 8. Я совершенно новичок в этом. Я хочу создать базу данных для этого приложения, из которого я могу выполнять операции CRUID. Я нашел некоторую информацию во время просмотра и просмотра видео, но я этого не понимал.Создание локальной базы данных в приложении для телефона Windows 8 с помощью vs2012

Некоторые шаги я сделал:

  1. Установленные окна телефон приложение 8 SDK для vs2012
  2. Добавлено некоторые Sqlite расширения МЕНЕДЖЕР NuGet пакетов.
  3. Разработал базовый интерфейс для приложения.
  4. скопировали и вставили код с некоторыми изменениями

Что я хочу:

  1. Постоянно Вставка и извлечения данных из базы данных (я скачал код с некоторых веб-сайт, но после запуска, когда я закройте эмулятор и попробуйте просмотреть ранее введенные данные, он не вернет его)
  2. Как и его память, необходимо хранить его в памяти телефона или в любом таком месте

  3. Отображение неправдоподобные данные в ListView или сетки

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

The MainPage.xaml.cs Код:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Navigation; 
using Microsoft.Phone.Controls; 
using Microsoft.Phone.Shell; 
using CustomerPhoneApp.Resources; 
using SQLite; 
using System.IO; 
using Windows.Foundation; 
using Windows.Foundation.Collections; 
using Windows.Storage; 
using Windows.UI.Popups; 
using System.Data.Linq; 
using System.Diagnostics; 

namespace CustomerPhoneApp 
{ 
public partial class MainPage : PhoneApplicationPage 
{ 
    [Table("Users")] 
    public class User 
    { 
     [PrimaryKey, Unique] 

     public string Name { get; set; } 
     public string Age { get; set; } 
    } 

    protected async override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     try 
     { 
      var path = ApplicationData.Current.LocalFolder.Path + @"\users.db"; 
      var db = new SQLiteAsyncConnection(path); 
      await db.CreateTableAsync<User>(); 
     } 
     catch (Exception) 
     { 
     } 
    } 

    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
    } 

    private async void Button_Click(object sender, RoutedEventArgs e) 
    { 
     if (txtName.Text != "" && txtAge.Text != "") 
     { 
      var path = ApplicationData.Current.LocalFolder.Path + @"\users.db"; 
      var db = new SQLiteAsyncConnection(path); 
      var data = new User 
      { 
       Name = txtName.Text, 
       Age = txtAge.Text, 
      }; 

      int x = await db.InsertAsync(data); 
     } 
     else 
     { 
      MessageBox.Show("enter the title and Notes"); 
     } 
    } 

    private void Button_Click_1(object sender, RoutedEventArgs e) 
    { 
     RetriveUserSavedData(); 
    } 

    private async void RetriveUserSavedData() 
    { 
     string Result = ""; 
     var path = ApplicationData.Current.LocalFolder.Path + @"\users.db"; 
     var db = new SQLiteAsyncConnection(path); 

     List<User> allUsers = await db.QueryAsync<User>("Select * From Users"); 
     var count = allUsers.Any() ? allUsers.Count : 0; 

     foreach (var item in allUsers) 
     { 
      Result += "Name: " + item.Name + "\nAge: " + item.Age.ToString() + "\n\n"; 
     } 

     if (Result.ToString() == "") 
     { 
      MessageBox.Show("No Data"); 
     } 

     else 
     { 
      MessageBox.Show(Result.ToString()); 
     } 
    } 

    private void txtName_TextChanged(object sender, TextChangedEventArgs e) 
    { 

    } 

    private void txtName_GotFocus(object sender, RoutedEventArgs e) 
    { 
     txtName.Text = ""; 
    } 

    private void txtAge_GotFocus(object sender, RoutedEventArgs e) 
    { 
     txtAge.Text = ""; 
    } 
} 
} 
+0

@Gahendra Rajput. Какая проблема? – Eldho

+0

@ Eldho Когда эмулятор закрыт, введенные данные теряются при использовании вышеуказанного кода. когда я нажимаю кнопку просмотра клиента, он не отображает ранее введенных клиентов. Я хочу, чтобы ранее введенные данные отображались. Возможно ли это любым способом? –

ответ

1

1.- Постоянно вставлять и извлекать данные из базы данных (я загрузил код с какого-то веб-сайта, но после запуска его, когда я закрыл эмулятор и попытался просмотреть ранее введенные данные, он не будет ret urn it)

Когда вы закрываете эмулятор, вы потеряли все приложения на нем, поэтому, если вы его закроете, вы потеряли все. Если вы хотите проверить сохранение данных, вы можете закрыть приложение (только приложение, а не эмулятор) и открыть его из списка своих приложений в эмуляторе WP.

Как следует хранить в памяти телефона или на любом таком месте С SQL облегченными вы не можете хранить данные в SD, он будет сохранен в каталоге приложения, если вы хотите использовать SD для хранения данные, вы можете использовать бинарные файлы

показать извлечённые данные в ListView или сетках для отображения данных в ListView или сетках, вам нужно создать ViewModel или DataContext, а затем использовать Binding на «отправить» данные в de view.

+0

Hi @Brakyo Рассмотрение сценария реального мира. Как и в этом случае, когда эмулятор закрыт, введенные данные теряются. Если я использую это приложение в телефоне Windows, он сохранит введенные данные? или он будет потерян? –

+1

@GajendraRajput Пока приложение не будет удалено, данные будут доступны. База данных хранится в 'IsolatedStorage' каждого приложения. Как только пользователь удалит приложение, «AppData», например, ваша база данных будет потеряна. если пользователь перезагрузит телефон, вы все равно будете доступны. Эмулятор инициализируется каждый раз, поэтому он означает новый экземпляр телефона, поэтому уже сохраненные данные удаляются из памяти. Попробуйте отладить в телефоне. – Eldho

+0

Спасибо @ Eldho за это объяснение. Это значительно разъясняет мои сомнения. –