虽然 UWP-RT 库目前没有自带的 Sqlite 数据库操作 API,但通过 Nuget 可以获取许多支持 Sqlite 的第三方组件。需要注意的是,这些组件并非全都稳定易用,部分可能存在各种错误。经过筛选,目前已发现一款较为优秀的组件,它不仅功能完善,还支持 LINQ 操作,能够满足实际开发需求。
1、 在 Visual Studio 中创建一个新的 UWP 应用程序项目。
2、 在解决方案资源管理器中右击引用节点,选择管理NuGet程序包菜单。
3、 找到并安装以下两个组件,所示:
4、 注:
5、 SQLite.WUP.Native 是必备组件,它是用于封装 SQLite 操作函数的本地库。若使用 C++ 开发,可直接调用其中的功能。若未安装该库,运行程序时会提示找不到 sqlite3.dll,导致错误发生。请确保正确安装以避免问题。
6、 SQLiteWrapperUWP-PCL也需要安装,它进一步封装了SQLite的操作接口,且支持LINQ查询功能。

7、 安装成功后,引用列表会出现相关条目,所示。

8、 在代码中引入以下相关命名空间,所示。

9、 要连接数据库并创建表,需使用 SQLiteConnection 类。实例化时,须提供两个必要参数,其余为可选。
10、 sqlitePlatform 类型为 ISQLitePlatform 接口,其实现类型为 SQLitePlatformWinRT。这是一个关键的依赖项配置。
11、 databasePath:表示数据库文件的路径。需注意,UWP应用默认可访问的路径有限,一般为本地目录。为避免异常,可使用ApplicationData类获取localFolder实例,通过该实例的Path属性获取本地目录完整路径,再将此路径作为参数传递。
12、 例如,按照以下方式建立连接:
13、 连接使用完毕后,可调用Dispose方法释放资源,也可将实例化置于using语句块中自动处理。

14、 定义数据表模型,例如,创建一个Student类,用于表示一张数据表,所示。
15、 用于建表的类需添加 Table 特性,属性映射到列时要加 Column 特性。其中,AutoIncrement 特性表示该字段为自增长列,确保正确映射数据库结构。

16、 创建表格。在实例化数据库连接后,可通过调用连接对象的CreateTable方法来直接创建表格,示例所示。
17、 若CreateTable方法返回0,则表示表创建成功,无任何错误。

18、 在实例化连接对象后,可使用 Insert 方法添加单条数据,用 InsertAll 方法批量插入多条数据。若需处理重复记录,InsertOrReplace 可插入单条数据并替换已有记录,而 InsertOrReplaceAll 则支持批量插入多条数据,同时替换已存在的项,具体操作示例所示。
19、 上述代码首先调用 DeleteAll 方法清空表内所有数据,随后插入四条记录。插入操作会返回成功写入的记录数量,因此此处应返回 4。

20、 查询数据时,可以使用LINQ进行操作,具体方式所示。
21、 Table 方法返回 TableQuery 实例,支持使用 LINQ 语句操作。此处示例会筛选全部数据,并按 Age 属性升序排序展示。

22、 运行结果所示:
