刚刚测试了wp8里的sqlite功能,有点小波折,不过一切都还顺利。现在写出来和大家分享一下吧!
可以说整个过程分为4步(先新建一个项目再开始以下步骤):
1)在Vs2012中打开工具(tools)里的扩展和更新(extensions and updates)搜索 sqlite for windows phone然后下载安装2)
2)打开工具 ---〉库程序包管理器--->管理器控制台
然后输入 Install-package sqlite-net 回车
等待一会就会提示安装完成
此时应该会有两个新文件:SQLite.cs SQLiteAsync.cs添加到项目里
3)到 https://github.com/peterhuene/sqlite-net-wp8 页面中 点击右边下方的download 下载此项目 解压后 在解决方案资源管理器
(一般在右上的那个框,除非你调了)里的解决方案上右键,添加已有项目,把刚下载的项目添加进来,然后添加引用sqlite(引用---〉右键--->添加引用--->解决方案--->sqlite)
4)右键你的项目,然后点击属性,点击右边的生成,在条件编译符号里加上;USE_WP8_NATIVE_SQLITE 使其变为
此时你的sqlite便可以运行了。
关于测试代码:
namespace SQLiteTest { public partial class MainPage : PhoneApplicationPage { private SQLiteConnection mySqlite = null; // 构造函数 public MainPage() { InitializeComponent(); } private void InitializeDB() { mySqlite = new SQLiteConnection("SQLiteTestDB"); mySqlite.CreateTable<People>(); } protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) { if (mySqlite != null) { mySqlite.Close(); } base.OnNavigatingFrom(e); } protected override void OnNavigatedTo(NavigationEventArgs e) { InitializeDB(); RefreshListBox(); base.OnNavigatedTo(e); } private void btnAdd_Click(object sender, RoutedEventArgs e) { string name = txbName.Text; int age = Int32.Parse(txbAge.Text); People people = new People { Id = Guid.NewGuid().ToString(), Name = name, Age = age }; mySqlite.BeginTransaction(); mySqlite.Insert(people); mySqlite.Commit(); RefreshListBox(); } private void RefreshListBox() { List<People> peopleList = mySqlite.Table<People>().ToList<People>(); lbxDB.ItemsSource = peopleList; } } }
和People类
namespace SQLiteTest { public sealed class People { [PrimaryKey] public string Id { set; get; } public string Name { set; get; } public int Age { set; get; } public People() { } public People(string name, int age) { Name = name; Age = age; } } }
就给大家了。如果有什么问题欢迎讨论!