研究WIN8的应用程序商店也有几天了,苦于一直没有找到快速入门的方法,一直纠结于应该先学那一块。
今天我终于想通了,想想以前在学习WEB开发的时候,也不是样样学会以后再去做的开发,说到底还是要做到哪,学到哪。
今天我先说说应用商店程序使用SQLLITE。
翻看MSDN,我发现微软没有提供任何使用SQLITE的示列代码,也没有提供一些API接口。后来在网上百度了一番,终于知道原来WIN8不是原生支持SQLITE的,需要安装一些插件才能使用。
1.创建一个metro项目
2.在工具,选择扩展与更新中,选择联机(online),在搜索框内输入sqlite
3.将会发现一个叫做sqlite for window runtime点击安装
4.
5.在引用中,选择windows,扩展,把Mircosoft visual c++ runtime package以及sqlite for windows runtime二者勾选上
6.点选解决方案,选择属性,配置属性,将平台选择为对应的平台,暂时不支持any cpu
7.点击项目,选择管理nuget包(如果没有需要另行安装),在联机中搜索sqlite-net,点击安装
8,安装成功后会生成两个文件:SQLite.cs与SQLiteAsync到此完成安装部署
9,把我们下载的SQLITE.DLL拷贝的工程的根路径(下载路径上面的参考路径里面有,我下面也放了一个64位版本的文件)。
下面就是举一个简单的举例进行了解sqlite的使用;(经过试验,这一步是不需要的)
首先:声明一个person类也就是表主键自动增长
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;using SQLite;namespace AppHelloworld{ public class Person { [SQLite.AutoIncrement, SQLite.PrimaryKey] public int ID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } private string _filepath = ""; public Person(string filepath) { _filepath = filepath; } public Person() { } public async void Create() { SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(_filepath); await conn.CreateTableAsync(); } public async void Insert() { SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(_filepath); await conn.InsertAsync(new Person() { FirstName = "liufei", LastName = "Sky" }); } public async void Select() { SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(_filepath); var query = await conn.Table ().ToListAsync(); int i = 0; foreach (var item in query) { // Debug.WriteLine(string.Format("{0}: {1} {2}", item.Id, item.Name, item.Surname)); } } }}
来看看调用
private async void Button_Click(object sender, RoutedEventArgs e) { var root = Windows.Storage.ApplicationData.Current.LocalFolder; var path = await root.CreateFolderAsync("sql", CreationCollisionOption.OpenIfExists); var filename = await path.CreateFileAsync("people.sqlite", CreationCollisionOption.OpenIfExists); string filepath = filename.Path; Person person = new Person(filepath); // person.Create(); person.Insert(); person.Select(); }
我的是:C:\Users\David Zhu\AppData\Local\Packages\3595c634-cd9f-450c-ac45-0ffa721c77dc_nc6yw4ayk18f8\LocalState\sql
这里需要提一下,就是SQLITE3.DLL不是通过引用放到解决方案里面的,而是直接拷贝到程序的根路径,这和我们以前的开发方式不太一样。另外需要找到你自己计算机匹配的版本。
再附加上我的SQLITE.DLL,方便大家使用