使用 vs2012 在 windows phone app 8 中创建本地数据库
Creating a local database in windows phone app 8 using vs2012
我想在 windows phone 8 中开发应用程序。
我对此完全陌生。我想为该应用程序创建一个数据库,我可以从中执行 CRUID 操作。
我在浏览和观看视频时找到了一些信息,但我不太了解。
我做的一些步骤:
- 已安装 windows phone 适用于 vs2012 的 app 8 sdk
- 从管理 Nuget 包中添加了一些 Sqlite 扩展。
- 为应用程序开发了一个基本界面。
- 复制粘贴代码,稍作改动
我想要的:
- 永久插入数据库并从数据库中获取数据(我从某个网站下载了一段代码,但在 运行 之后,当我关闭模拟器并尝试查看之前输入的数据时,它赢了'treturn它)
就像它应该存储在phone内存或任何这样的地方
在列表视图或网格中显示获取的数据
请将我可以解决的 link 或此处提出的任何类似问题发给我
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.-从数据库中永久插入和获取数据(我从某个网站下载了代码,但在 运行 之后,当我关闭模拟器并尝试查看之前输入的数据时, 它不会 return 它)
当您关闭模拟器时,您会丢失其中安装的所有应用程序,因此如果您关闭它,您将丢失所有应用程序。如果您想测试您的数据保存,您可以关闭该应用程序(仅 de 应用程序,而不是模拟器)并从 WP 模拟器中的应用程序列表中打开它。
就像它应该存储在phone内存或任何这样的地方
使用SQL lite你不能将数据存储在SD中,它会存储在你的应用程序目录中,如果你想使用SD存储数据,你可以使用二进制文件
在列表视图或网格中显示获取的数据
要在列表视图或网格中显示您的数据,您需要创建一个 ViewModel 或 DataContext,然后使用 Binding 来 "send" 要查看的数据。
我想在 windows phone 8 中开发应用程序。 我对此完全陌生。我想为该应用程序创建一个数据库,我可以从中执行 CRUID 操作。 我在浏览和观看视频时找到了一些信息,但我不太了解。
我做的一些步骤:
- 已安装 windows phone 适用于 vs2012 的 app 8 sdk
- 从管理 Nuget 包中添加了一些 Sqlite 扩展。
- 为应用程序开发了一个基本界面。
- 复制粘贴代码,稍作改动
我想要的:
- 永久插入数据库并从数据库中获取数据(我从某个网站下载了一段代码,但在 运行 之后,当我关闭模拟器并尝试查看之前输入的数据时,它赢了'treturn它)
就像它应该存储在phone内存或任何这样的地方
在列表视图或网格中显示获取的数据
请将我可以解决的 link 或此处提出的任何类似问题发给我
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.-从数据库中永久插入和获取数据(我从某个网站下载了代码,但在 运行 之后,当我关闭模拟器并尝试查看之前输入的数据时, 它不会 return 它)
当您关闭模拟器时,您会丢失其中安装的所有应用程序,因此如果您关闭它,您将丢失所有应用程序。如果您想测试您的数据保存,您可以关闭该应用程序(仅 de 应用程序,而不是模拟器)并从 WP 模拟器中的应用程序列表中打开它。
就像它应该存储在phone内存或任何这样的地方 使用SQL lite你不能将数据存储在SD中,它会存储在你的应用程序目录中,如果你想使用SD存储数据,你可以使用二进制文件
在列表视图或网格中显示获取的数据 要在列表视图或网格中显示您的数据,您需要创建一个 ViewModel 或 DataContext,然后使用 Binding 来 "send" 要查看的数据。