Создание локальной базы данных в приложении Windows Phone 8 с использованием vs2012
Я хочу разработать приложение для Windows Phone 8. Я совершенно новичок в этом. Я хочу создать базу данных для этого приложения, из которой я могу выполнять операции CRUID. Я нашел некоторую информацию, просматривая и просматривая видео, но я не понимал ее.
Некоторые шаги, которые я сделал:
- Установлено приложение Windows Phone 8 SDK для Vs2012
- Добавлено несколько расширений Sqlite из Manage Nuget Packages.
- Разработан базовый интерфейс для приложения.
- Скопировал и вставил код с небольшими изменениями
Что я хочу:
- Постоянно вставлять и извлекать данные из базы данных (я скачал код с какого-то веб-сайта, но после его запуска, когда я закрываю эмулятор и пытаюсь просмотреть ранее введенные данные, он не возвращает его)
Как будто он должен храниться в памяти телефона или в любом другом месте
Отображать извлеченные данные в виде списка или сетки
Пожалуйста, пришлите мне ссылку, по которой я могу перейти, или любой подобный вопрос, заданный здесь
Код 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 = "";
}
}
}
1 ответ
1.-Постоянно вставлять и извлекать данные из базы данных (я скачал код с какого-то веб-сайта, но после его запуска, когда я закрываю эмулятор и пытаюсь просмотреть ранее введенные данные, он не вернет его)
Когда вы закрываете эмулятор, вы теряете на нем все приложения, поэтому если вы закрываете его, вы теряете все. Если вы хотите проверить сохранение данных, вы можете закрыть приложение (только приложение, а не эмулятор) и открыть его из списка приложений в эмуляторе WP.
Как будто он должен храниться в памяти телефона или в любом другом месте С SQL lite вы не можете хранить данные на SD, они будут храниться в каталоге вашего приложения, если вы хотите использовать SD для хранения данных, вы можете использовать двоичные файлы
Отображение извлеченных данных в виде списка или в сетке Чтобы отобразить ваши данные в виде списка или в сетке, необходимо создать ViewModel или DataContext, а затем использовать Binding для "отправки" данных для просмотра.