WP8中SQLite的安装和使用

刚刚测试了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 { setget; }
        public string Name { setget; }
        public int Age { setget; }
 
        public People()
        {
 
        }
 
        public People(string name, int age)
        {
            Name = name;
            Age = age;
        }
    }
}

 

就给大家了。如果有什么问题欢迎讨论!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章