RT/Metro商店应用如何调用SQLite数据库

使用前,要安装:SQLite for Windows Runtime (Windows 8.1)(一个VS插件)、还有Visual C++ Runtime Package(如:Microsoft Visual C++ 2013 Runtime Package for Windows),
同时,项目生成要修改为X86或者X64,总之不能使有和AnyCPU。我这里使用的是X86.
 
  private async void Create()
{
//数据文件保存的位置
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");
//打开创建数据库和表
using (var db = new SQLite.SQLiteConnection(dbPath))
{
//创建表
var result = db.CreateTable<Model.Person>();
await new MessageDialog("返回值:" + result).ShowAsync();
}
}
private async void Insert()
{
//连接数据库
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");
using (var db = new SQLite.SQLiteConnection(dbPath))
{
//插入操作。首先声明一个集合
ObservableCollection<Person> Collection = new ObservableCollection<Person>();
//单条插入语句
db.Insert(new Person() { FirstName = "宋兴柱1", LastName = "Sindrol" });
Collection.Add(new Person() { FirstName = "宋兴柱2", LastName = "Sindrol1" });
Collection.Add(new Person() { FirstName = "宋兴柱3", LastName = "Sindrol2" });
//多条插入集合
var result = db.InsertAll(Collection);
await new MessageDialog("返回值:" + result).ShowAsync();
}
}
private async void Update()
{
//更新语句
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");
using (var db = new SQLite.SQLiteConnection(dbPath))
{
SQLiteCommand cmd = db.CreateCommand("update person set FirstName='lisa' where LastName='Sindrol'");
var result = cmd.ExecuteNonQuery();
await new MessageDialog("返回值:" + result).ShowAsync();
}
} private async void Delete()
{
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");
using (var db = new SQLite.SQLiteConnection(dbPath))
{
//单行删除操作
db.Delete<Person>();
//多行删除
var result = db.DeleteAll<Person>();
await new MessageDialog("返回值:" + result).ShowAsync();
}
}
private async void Select()
{
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");
using (var db = new SQLite.SQLiteConnection(dbPath))
{
//查询所有数据绑定到UI
List<object> list = db.Query(new TableMapping(typeof(Person)), "select * from Person");
gridView.ItemsSource = list;
}
}

Person类如下图所示:

  class Person
{ [SQLite.AutoIncrement, SQLite.PrimaryKey]
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}

数据库效果图:

RT/Metro商店应用如何调用SQLite数据库的更多相关文章

  1. RT/Metro商店应用如何如何获取图片的宽高

    RT/Metro商店应用如何如何获取图片的宽高 var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms ...

  2. 【转】Phonegap离线调用SQLite数据库文件

    按:不可多得的好文章,转过来以免源丢失 文章来源:http://liuwei.co/index.php/default/The-quickest-way-to-execute-many-sql-for ...

  3. Android调用Sqlite数据库时自动生成db-journal文件的原因

    数据库为了更好实现数据的安全性,一半都会有一个Log文件方便数据库出现意外时进行恢复操作等.Sqlite虽然是一个单文件数据库,但麻雀虽小五脏俱全,它也会有相应的安全机制存在 这个journal文件便 ...

  4. 【转】Android调用Sqlite数据库时自动生成db-journal文件的原因

    数据库为了更好实现数据的安全性,一半都会有一个Log文件方便数据库出现意外时进行恢复操作等.Sqlite虽然是一个单文件数据库,但麻雀虽小五脏俱全,它也会有相应的安全机制存在 这个journal文件便 ...

  5. Qt for Android 打包 SQLite 数据库

    Qt for Android 调用 SQLite 数据库时, 怎样将已经存在的数据库附加到 APK 中? 直接在你项目里面的Android源码的根目录下新建一个文件夹assets, 数据库就可以放里面 ...

  6. C#调用SQLite报错:无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块

    C#调用SQLite数据库,有些情况下会报以下这个错误: 无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块 实际上程序目录中是存在SQLite.Interop.dll这个文 ...

  7. Android学习---SQLite数据库的增删改查和事务(transaction)调用

    上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...

  8. cordova调用本地SQLite数据库的方法

    第一篇技术博客,写下来和大家分享今天所学,其次自己也巩固一下. 整个下午的时间用来钻研如何用cordova调用移动端本地SQLite数据库.首先我并不是用eclipse来编程的,而是用cordova建 ...

  9. Android学习记录:SQLite数据库、res中raw的文件调用

    SQLite数据库是一种轻量级的关系型数据库. 在android中保存数据或调用数据库可以利用SQLite. android中提供了几个类来管理SQLite数据库 SQLiteDatabass类用来对 ...

随机推荐

  1. EXCEL密码破解/破解工作表保护密码

    网上有很多这个代码,但很多朋友并不太了解如何运用在此做了一些整理,希望对大家有所帮助! 注:很多时候会因为忘记密码丢失重要EXCEL文件而烦恼,这份代码就能帮你找回,仅仅出之这个初衷,如因为这个代码让 ...

  2. HTML5之SVG

    1.背景 SVG是Scalable Vector Graphics的缩写,意为可缩放矢量图形.1998年,万维网联盟成立了一个工作组,研发一种通过 XML来表现矢量图形的技术——SVG!由于SVG也是 ...

  3. c++中 extern

    用例子给你示范 // 1.cpp int x = 10; // 2.cpp 注意没有包含1.cpp #include <iostream> using namespace std; ext ...

  4. Java中使用正则表达式获取网页中所有图片的路径

    public static List<String> getImageSrc(String htmlCode) { List<String> imageSrcList = ne ...

  5. 美国谍梦第三至五季/全集The Americans迅雷下载

    本季看点:冷战间谍题材美剧,FX电视台的<美国谍梦>老派谍战剧第二季开场吸引了190万的观众.在18-49岁的目标观众群中,这部福克斯电视工作室出品的剧集有160万的收视,提高了81%.一 ...

  6. python 多线程日志切割+日志分析

    python 多线程日志切割+日志分析 05/27. 2014 楼主最近刚刚接触python,还是个小菜鸟,没有学习python之前可以说楼主的shell已经算是可以了,但用shell很多东西实现起来 ...

  7. [转]用 jQuery 实现页面滚动(Scroll)效果的完美方法

    转自: http://zww.me/archives/25144 很多博主都写过/转载过用 jQuery 实现页面滚动(Scroll)效果的方法,但目前搜来的方法大都在 Opera 下有个小 Bug: ...

  8. smb与samba

    为了使Windows 主机间的资源能够共享,微软于1980年开发了SMB(Server Message Block)通信协议,并通过SMB通信协议,使网络上各台主机之间能够共享文件.打印机等资源.目前 ...

  9. Java NIO Channel to Channel Transfers

    In Java NIO you can transfer data directly from one channel to another, if one of the channels is a ...

  10. .Net-using-Class:MemoryCache 类

    ylbtech-.Net-using-Class:MemoryCache 类 初始化 System.Runtime.Caching.MemoryCache 类的新实例. 1. 程序集 System.R ...