轻量级本地数据库SQLite在WinRT的使用

开发环境:Windows 8.1

开发工具:Visual Studio Express 2013 for Windows

SQLite数据库介绍

1.SQLite是一款轻型的嵌入式数据库,使用C++开发,使用非常广泛

2.SQLite是一款跨平台的数据库,支持Windows、Linux、Android、IOS、Windows Phone系统

3.在Windows Phone中的SQLite是一个非托管组件

4.可以在Windows运行时中使用,也可以在C#项目中使用

5.在C#项目中需要通过Windows运行时组件来访问

6.跟大部分数据库的“客户端/服务器端”的模式不同,SQLite并不运行在一个独立的进程中,而是嵌入到程序中成为程序中的一部分。在同一个进程中进行数据操作有着比进程之间通讯更加高的效率

7.整个数据库(定义,表,数据等)存储到一个单一的文件中,使得数据库迁移变得更加方便。

在应用中添加SQLite引用

SQLite项目组已经为我们制作好了SQLite for Windows Runtime,并将之做成了一个VS扩展,使得使用起来更加方便。

http://www.sqlite.org/download.html 下载并安装以下两个插件

安装完毕之后就可以在项目右键添加引用添加C++ Runtime Package和SQLite Package

引用之后sqlite是以dll形式存在的,如果我们需要使用dll中封装的方法我们需要使用P/Invoke的方法并自己在应用中重新封装工作量巨大。推荐使用sqlite-net。这是一个开源的轻量级的库,可以让.Net平台操作sqlite数据库。我们可以通过nuget获得:

完成之后我们将会得到两个文件:

这其中不仅通过P/Invoke调用大量的dll中方法,并重新进行了封装,使得方法大部分支持异步调用,极大的方便了我们使用。

SQLite-net的使用

    public static class PasswordController
    {
     public static List<Password> GetAll()
        {
            var query = Common.Conn.Table<Password>();
            return query.ToList();
        }

     public static Password Get(int id)
        {
            var query =Common.Conn.Table<Password>().Where(p => p.Id == id);
            if (query != null)
            {
                return query.FirstOrDefault();
                //return query.ToList()[0];
            }
            return null;
        }

     public static void Edit(Password pw)
        {
            var query = Common.Conn.Table<Password>().Where(p => p.Id == pw.Id);
            if (query != null)
            {
                Common.Conn.Update(pw);
            }
        }

        public static void Add(Password pw)
        {
            Common.Conn.Insert(pw);
        }
     public static void Delete(int id)
        {
            var query = Common.Conn.Table<Password>().Where(p => p.Id == id);
            if (query != null)
            {
                Common.Conn.Delete(query.FirstOrDefault());
            }
        }
    }
  static class Common
    {
        private const string DbName = "safebox.db";//"db.sqlite";
     private static SQLiteConnection _Conn;
        public static SQLiteConnection Conn
        {
            get
            {

                if (_Conn == null)
                {
                    string DbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, DbName);
                    _Conn = new SQLiteConnection(DbPath);//指定本地文件夹创建数据库连接
                    List<SQLiteConnection.ColumnInfo> PasswordCis = _Conn.GetTableInfo("Password");//貌似不区分大小写,_Conn.GetTableInfo("password")一样效果
                    if (PasswordCis.Count == 0)
                    {
                        _Conn.CreateTable<Password>();//如果没有此数据库表,就创建
                    }
                }
                return _Conn;
            }
        }
    }

参考引用:

数据库系统在WinRT中的使用(二)Part 1:SQLite的使用

wp8.1 SQLite的基本使用

Windows Phone8 中如何引用 SQLite 数据库

时间: 2025-01-14 22:44:24

轻量级本地数据库SQLite在WinRT的使用的相关文章

android listview级联三菜单选择地区,本地数据库sqlite级联地区,item选中不变色

前言:因为找了N多网上的资源都没有好的解决方案,别人都是只给思路没给具体源码,真TMD纠结,干嘛求别人,自己动手才是真,最痛恨那些所谓大牛的作风,给了点点代码就让别人去想,你让我们这种小白情何于堪!!!!!!此例是基于listview来实现本地sqlite实现的! 二话不说,程序猿求的是有图有真相有源码!大家下载后有什么问题可以找到本人:QQ508181017 核心代码如下 1.数据库操作类 package com.icq.demo.db; import java.util.ArrayList;

QT 创建本地数据库(SQLite数据库)存储数据

注意:QT自带SQLITE数据库,不需要再安装 1.创建一个包含创建.查询.修改和删除数据库的数据库类(DataBase) DataBase.h头文件 #pragma once #include <QObject> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlQuery> #include <QtSql/QSqlDriver> #include <QtSql/QSqlError> #incl

android 本地数据库sqlite的封装

单机android   sqlite数据库的实现,这个数据库可与程序一起生成在安装包中 一.下载sqlite3.exe文件 二.运行 cmd 转到sqlite3.exe 所在目录  运行 sqlite3.exe 数据库名.db     然后会出现sqlite>的命令提示符 输入创建表的语句, create table 表名('列','列'...):(注意: 要在结束部分加  分号 )     此时会在sqlite3.exe 所在目录,出现所建数据库的文件 三.如果想在Android中运行的话,需

Xamarin.Forms&lt;五&gt; Android的本地数据库SQLite

1.准备工作:在项目的“管理NuGet程序包”中安装“SQLite.Net PCL”和“SQLite.Net PCL - XamarinAndroid Platform”在引用中“添加引用”添加SQLite.Net.dll以及SQLite.Net.Platform.XamarinAndroid.dll. 2.在Common项目的Tables文件夹下创建映射类(SQLite表),这个类的结构完全是对应到SQLite数据库中的表.创建一个名为t_Custom表 1 public class t_Cu

unity中使用本地数据库sqlite

sqlite的安全性没用mySql高,因为sqlite不用创建用户,以及权限设置,sqlite是单机数据库,功能简约,小型化,MySql试用于服务器数据量大功能多需要安装,例如网站访问量比较大的数据管理 其实MySQL与Sqlite中的数据库操作函数基本上都一样,没什么区别,主要区别就是权限和库大小 注意:在使用这个sqlite数据管理时,也要把,几个需要的动态库放到Plugins里面(Mono.Data.Sqlite,   sqlite3,   System.Data)这几个动态库百度都能搜到

Unity连接本地数据库sqlite

首先要创建一个sqlite的数据库,记住文件地址,拷贝到Assets目录下,创建的数据库文件后缀为.sqlite.具体创建方法百度sqlite 然后百度Mono.Data.Sqlite,这是一个dll文件,下载下来,同样需要放到Assets目录下 接下来创建c#脚本,using UnityEngine;using System.Collections;using Mono.Data.Sqlite;using System.IO; public class SQLiteDemo : MonoBeh

(转)HTML5 本地数据库(SQLite) 示例

  HTML5 本地数据库(SQLite) 示例 2012-05-07 16:21:13 标签:SQLite HTML5本地数据库 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://supercharles888.blog.51cto.com/609344/856071 按照国内一HTML5先行者的例子仿写了一个用HTML5 API来操作本地SQLite数据库的例子,感觉这个功能蛮好玩的,但是还不够强大,尤其浏览器支持力度不够:

Unity3D在Android平台使用嵌入式数据库Sqlite,解决无法找到数据库文件的问题

做一个需要嵌入式数据库Sqlite 的unity3d项目,在pc机上运行良好,需要发布到Android平台上,于是,各种坑爹...会遇到找不到数据库文件的问题.当在pc机上使用sqlite时,当执行SqliteConnection dbConnection = new SqliteConnection("data source = test.db");语句时,如果有这个数据库文件则建立连接,如果没有则创建出这个文件,然后建立连接.当在Android平台上时,扯淡的事情就开始了,总之便不

html5的本地数据库

之前的应用一直用的是html5的本地存储LocvalStorage,挺方便也很实用. 最近开始做一个类似于离线电话簿的应用,于是得学习html5的本地数据库. sql语言大体上还是相同的,当然也有不一样的地方,我觉得以sqlite的为标准不容易出错. 开始前对html websql的操作可以有一下几种方式备选: 1:使用js和html5原生的方式来操作: 2:使用appcan开发环境中的数据库模块来操作: 该模块包含了appcan对数据库的基础操作 appcan.database.create(