在Windows Phone 8.1应用中使用SQLite数据库

在开发移动应用时,经常需要使用数据库来存储和管理数据。本文将指导如何在Windows Phone8.1应用中集成SQLite数据库,并实现基本的增删改查(CRUD)操作。

创建SQLite数据库文件

为了创建SQLite数据库,可以使用Mozilla的扩展程序SQLite Manager。首先,创建一个名为"PersonalDetails"的表,包含以下字段:

  • Id - INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  • Name - VARCHAR
  • Address - VARCHAR
  • EmailId - VARCHAR
  • PhoneNo - VARCHAR

安装Visual Studio 2013的SQLite扩展

接下来,需要为Windows Phone8.1安装SQLite扩展。可以直接在Visual Studio中通过"扩展和更新"选项下载安装,或者从其他渠道下载安装。安装完成后,会在已安装的扩展中找到它。

在应用中设置SQLite

创建一个新的空白Windows Phone8.1应用,并通过Nuget安装SQLite。安装后,项目中会新增两个与SQLite相关的cs文件。然后,需要在应用中添加对SQLite的引用。在构建应用时,如果遇到编译错误,可以通过更改平台设置从Any CPU改为ARM来解决。

为了在SQLite数据库中执行CRUD操作,首先需要创建一个模型类来表示数据库中的表。这个模型类将作为表的副本,类名必须与SQLite数据库中的表名相同。

public class PersonalDetails { [SQLite.AutoIncrement, SQLite.PrimaryKey] public int Id { get; set; } public string Name { get; set; } public string Address { get; set; } public string EmailId { get; set; } public string PhoneNo { get; set; } }

在模型类中,使用SQLite.AutoIncrement和SQLite.PrimaryKey属性标记主键字段和自增字段。

SQLite数据库文件添加到项目中,并设置其构建操作为"内容",复制到输出目录设置为"如果较新则复制"。

接下来,创建CRUD函数。

public class DataProvider : IDisposable { private bool disposed = false; private string _dbName = "Employees.sqlite"; public DataProvider() { } ~DataProvider() { Dispose(false); } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (!disposed) { if (disposing) { // 释放托管资源 } disposed = true; } } public List<PersonalDetails> GetEmployeeList() { List<PersonalDetails> employeeList = new List<PersonalDetails>(); try { using (var db = new SQLite.SQLiteConnection(_dbName)) { employeeList = db.Query<PersonalDetails>("select * from PersonalDetails").ToList(); } } catch (Exception ex) { // 处理异常 } return employeeList; } public bool AddEmployee(PersonalDetails employeeInfo) { bool result = false; try { using (var db = new SQLite.SQLiteConnection(_dbName)) { db.RunInTransaction(() => { db.Insert(employeeInfo); }); } result = true; } catch (Exception ex) { // 处理异常 } return result; } public bool UpdateEmployee(int id, PersonalDetails employeeInfo) { bool result = false; try { using (var db = new SQLite.SQLiteConnection(_dbName)) { var employee = db.Query<PersonalDetails>("select * from PersonalDetails where Id=" + id).FirstOrDefault(); if (employee != null) { employee.Address = employeeInfo.Address; employee.Name = employeeInfo.Name; db.RunInTransaction(() => { db.Update(employee); }); } } result = true; } catch (Exception ex) { // 处理异常 } return result; } public bool DeleteEmployee(int id) { bool result = false; try { using (var db = new SQLite.SQLiteConnection(_dbName)) { var employee = db.Query<PersonalDetails>("select * from PersonalDetails where Id=" + id).FirstOrDefault(); if (employee != null) { db.RunInTransaction(() => { db.Delete(employee); }); } } result = true; } catch (Exception ex) { // 处理异常 } return result; } } DataProvider provider = new DataProvider(); // 添加员工 provider.AddEmployee(new PersonalDetails { Address = "154, Newyork", EmailId = "ron@ymail.com", Name = "Ron", PhoneNo = "082-445434-333" }); // 获取员工列表 var data = provider.GetEmployeeList(); // 更新员工信息 provider.UpdateEmployee(1, new PersonalDetails { Address = "187, Newyork", Name = "Ron Jan", }); // 删除员工 provider.DeleteEmployee(1);
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485