在Windows Phone上使用SQLite,并获取和编辑模拟器中的数据库文件

大家知道,在移动端实现数据的离线采集,最重要的一点就是在移动设备上临时存储数据,那么需要移动设备上提供对数据库(不管是本地原生还是第三方)的支持。SQLite是一款轻型的数据库,目前已经在很多嵌入式产品中使用了它,iOS和Android等主流的移动平台也对它提供了支持,关于SQLite数据在此不再赘述,有需要的同学自己谷歌一下。本文主要研究了以下2点:

1、在Windows Phone上使用SQLite数据库。

其实SQLite的使用很简单,学过或了解SQL语句的同学都非常容易上手,在这部分我将详细讲述在WP上使用SQLite的详细步骤,包括安装配置和详细代码,供初学者参考。

2、获取独立存储区中的数据库文件。

独立存储(IsolatedStorage)是Silverlight一个特色,它是Silverlight的虚拟文件系统,关于虚拟文件系统的概念,大家也可以自己百度,Windows Phone 7是基于Silverlight,它的文件系统也是IsolatedStorage,使用SQLite在WP端存储离线数据时,数据库文件就存放在独立存储区,那么这给我们开发者带来的一个困扰是:我们似乎无法看到模拟器中的数据库文件,不知道每次操作时数据库中发生了怎么样的改变,不利于调试,因此,这部分给大家介绍两种工具,分别用来从真机/模拟器的独立存储中取出数据文件和可视化的操作数据文件。

先看第一部分。

1、在Windows Phone上使用SQLite数据库

1)获取SQLite类库

1、从网站下载Sqlite Clientfor Windows Phone 7,截止目前,最新版本为0.6.1,下载地址:http://sqlitewindowsphone.codeplex.com/

2、下载后解压文件夹内容如下:

3、编译Community.CsharpSqlite.WP程序,获取Community.CsharpSqlite.WP.dll类库文件。

2)在Windows Phone上使用SQLite

1、新建windows Phone应用程序,目标平台选择wpos 7.1;

2、添加对1)中生成的Community.CsharpSqlite.WP.dll文件的引用;

3、在新建的程序主页面中设计4个按钮,分别用来创建、填充、清除和关闭数据库,如下:

4、在后台代码中添加SQLite类库的引用:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

using Microsoft.Phone.Controls;

using SQLiteClient;

 

5、添加SQLite数据库连接变量:

namespace SQLiteTest

{

    public partial class MainPage : PhoneApplicationPage

    {

        SQLiteConnection mySQLiteDB = null;

 

        // 构造函数

        public MainPage()

        {

            InitializeComponent();

        }

    }

}

 

6、给“Open”按钮添加事件,创建并打开数据库:

private void btnOpen_Click(object sender, RoutedEventArgs e)

        {

            if (mySQLiteDB == null)

            {

                mySQLiteDB = new SQLiteConnection("TestSQLiteDB");

                mySQLiteDB.Open();

 

                btnOpen.IsEnabled = false;

                btnClose.IsEnabled = true;

                btnClear.IsEnabled = false;

                btnPopulate.IsEnabled = true;

            }

        }

 

7、接下来,需要创建表,并往表中填充数据,使用SQLiteCommand对象实现:

private void btnPopulate_Click(object sender, RoutedEventArgs e)

        {

            //创建表RegisteredStudents,有3个属性:id、姓名、学号

            SQLiteCommand cmd = mySQLiteDB.CreateCommand("Create table RegisteredStudents (id int primary key,name text,zipcode numeric(7))");

            int i = cmd.ExecuteNonQuery();

            int id = 0;

            string name = "Name" + id;

            int zipcode = 98000;

            for (int j = 0; j < 10; j++)

            {

                id++;

                name = "Name" + id;

                zipcode = 98000 + id;

                cmd.CommandText = " Insert into RegisteredStudents (id, name, zipcode) values (" + id +",\"" + name +"\"," + zipcode +")";

                i = cmd.ExecuteNonQuery();

            }

 

            btnPopulate.IsEnabled = false;

            btnClear.IsEnabled = true;

        }

 

8、清空表中的数据,同样使用SQLiteCommand对象,代码如下:

private void btnClear_Click(object sender, RoutedEventArgs e)

        {

            SQLiteCommand cmd = mySQLiteDB.CreateCommand("drop table RegisteredStudents");

            int i = cmd.ExecuteNonQuery();

 

            btnPopulate.IsEnabled = true;

            btnClear.IsEnabled = false;

        }

 

 

9、断开数据库连接,关闭数据库,如下:

private void btnClose_Click(object sender, RoutedEventArgs e)

        {

            if (mySQLiteDB != null)

            {

                mySQLiteDB.Dispose();

                mySQLiteDB = null;

                btnOpen.IsEnabled = true;

                btnPopulate.IsEnabled = false;

                btnClear.IsEnabled = false;

                btnClose.IsEnabled = false;

            }

        }


运行程序,点击open可以在WP的模拟器的独立存储空间中创建名为“TestSQLiteDB”数据库,点击populate按钮可以为其填充数据,点击clear可以清空数据库中的数据,close关闭数据库连接。但是所有这些执行成功的操作在数据库中引起了怎样的变化,我们不得而知,所以接下来我们进入到第二步,如何取到模拟器中的数据库文件。

2、获取和操作独立存储区中的数据库文件

1)获取数据库文件

Windows Phone Power Tools工具可以直接连接模拟器/真机,读取独立存储空间中的数据(参考文章)。下载该工具,具体使用方法很简单,如下图:

选择真机或模拟器连接

连接成功后,在File Browser中可以看到,已经取到了该应用程序的独立存储区以及其中的数据库文件,点击“get”,将该数据文件存储到本地:

2)可视化操作数据库文件

通过Windows Phone PowerTools将数据库文件导出到电脑中,这个时候我们可以依靠另一种非常好用的可视化工具“SQLite-Manager”来操作和管理数据库文件了。SQLite-Manager帮助我们管理和创建与数据库相关的东西,如database、tables、views等,SQLite-Manager是一个插件,可以在火狐浏览器中安装:

安装好后,在火狐的浏览器菜单中启动SQLite Manager:

接下来,我们就可以非常方便的可视化的操作数据库了:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值