uwp数据库操作
来源:互联网 发布:linux local 编辑:程序博客网 时间:2024/05/21 07:08
在绝大多数应用中,免不了要做的一项就是设置这样的本地数据存储。简单的数据存储我们可以使用 LocalSettings 或者 IsolatedStorageFile(独立存储)等等的方式来进行本地数据存储。但是,如果数据比较复杂,或者是存在关联关系的情况下,这种简单的键值存储方式是不够用的。这时候就需要用到数据库来进行存储。说到数据库,小型、轻量基于文件的 SQLite 就很适合在这种场合使用。
一、安装 SQLite for Universal App Platform VSIX 扩展
打开菜单栏的工具-扩展与更新,选择左侧的联机选项卡,在右上角搜索框输入 SQLite。
安装上面这个 SQLite for Universal App Platform 扩展。等待安装完成后,重新启动 Visual Studio。
二、在项目中添加引用
1、添加对 SQLite 的引用
新建一个项目(当然在现有项目添加也可以,这里只是演示)。等待新建完成后,添加引用。
按照图片中的步骤,找到 SQLite for Universal App Platform,并勾选,然后按右下角的确定按钮。
2、添加 SQLite.Net 的引用
或者可以直接在程序包管理器控制台键入:Install-Package SQLite.Net-PCL 来进行安装。
3、确保引用无误
确保项目是把这两个包都引用上
三、开始编码
1、编写用于测试的 Person 模型类
using SQLite.Net.Attributes;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace sqlite2{ class Person { [PrimaryKey]// 主键。 [AutoIncrement]// 自动增长。 public int Id { get; set; } [MaxLength(5)]// 对应到数据库 varchar 的大小。 public string Name { get; set; } }}
2、编写测试页面的前台 Xaml 代码
<Page x:Class="sqlite2.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:sqlite2" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <StackPanel Margin="100"> <TextBlock Text="添加"></TextBlock> <TextBox Header="名字" x:Name="txtAddName"></TextBox> <Button Content="添加进数据库" Click="BtnAdd_Click"></Button> <TextBlock Text="查询" Margin="0,50,0,0"></TextBlock> <Button Content="查询所有" Click="BtnGetAll_Click"></Button> </StackPanel> </Grid></Page>
3、编写测试页面的后台 cs 代码
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Runtime.InteropServices.WindowsRuntime;using System.Text;using Windows.Foundation;using Windows.Foundation.Collections;using Windows.UI.Popups;using Windows.UI.Xaml;using Windows.UI.Xaml.Controls;using Windows.UI.Xaml.Controls.Primitives;using Windows.UI.Xaml.Data;using Windows.UI.Xaml.Input;using Windows.UI.Xaml.Media;using Windows.UI.Xaml.Navigation;//“空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 上有介绍namespace sqlite2{ /// <summary> /// 可用于自身或导航至 Frame 内部的空白页。 /// </summary> public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } private async void BtnAdd_Click(object sender, RoutedEventArgs e) { string name = txtAddName.Text; using (var conn = AppDatabase.GetDbConnection()) { // 需要添加的 Person 对象。 var addPerson = new Person() { Name = name }; // 受影响行数。 var count = conn.Insert(addPerson); string msg = $"新增的 Person 对象的 Id 为 {addPerson.Id},Name 为 {addPerson.Name}"; await new MessageDialog(msg).ShowAsync(); } } private async void BtnGetAll_Click(object sender, RoutedEventArgs e) { using (var conn = AppDatabase.GetDbConnection()) { StringBuilder msg = new StringBuilder(); var dbPerson = conn.Table<Person>(); msg.AppendLine($"数据库中总共 {dbPerson.Count()} 个 Person 对象。"); foreach (var person in dbPerson) { msg.AppendLine($"Id:{person.Id};Name:{person.Name}"); } await new MessageDialog(msg.ToString()).ShowAsync(); } } }}
4、编写 AppDatabase 类
using SQLite.Net;using SQLite.Net.Platform.WinRT;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using Windows.Storage;namespace sqlite2{ public static class AppDatabase { /// <summary> /// 数据库文件所在路径,这里使用 LocalFolder,数据库文件名叫 test.db。 /// </summary> public readonly static string DbPath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "test.db"); public static SQLiteConnection GetDbConnection() { // 连接数据库,如果数据库文件不存在则创建一个空数据库。 var conn = new SQLiteConnection(new SQLitePlatformWinRT(), DbPath); // 创建 Person 模型对应的表,如果已存在,则忽略该操作。 conn.CreateTable<Person>(); return conn; } }}
1 0
- uwp数据库操作
- [UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)
- UWP
- [UWP开发]查询SQL Server数据库
- UWP开发技巧:实现SMB协议操作文件服务器文件
- UWP开发技巧:实现SMB协议操作文件服务器文件
- UWP开发技巧:实现SMB协议操作文件服务器文件
- UWP开发技巧:实现SMB协议操作文件服务器文件
- [UWP小白日记-2]SQLite数据库DOME
- UWP简介:什么是UWP?
- CSDN-UWP
- [UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库
- 操作数据库
- 数据库操作
- 数据库操作
- 数据库操作
- 数据库操作
- 数据库操作
- C语言解析http请求表单内容
- 机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾
- poj 2965 The Pilots Brothers' refrigerator 飞行员兄弟的冰箱?
- Java集合类详解 set、list、map、
- AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
- uwp数据库操作
- Xcode7 插件制作入门
- 《C++ Primer Plus》——编程练习答案(1)
- 开发过程中遇到的BUG
- 手机号正则表达式iOS
- openwrt添加一条开机自动执行的命令
- tomcat JNDI 的配置
- Python正则表达式指南
- Chrome控制台使用详解