你的位置:首页 > ASP.net教程

[ASP.net教程]RT/Metro商店应用如何调用SQLite数据库


RT/Metro商店应用如何调用SQLite数据库

使用前,要安装:SQLite for Windows Runtime (Windows 8.1)(一个VS插件)、还有Visual C++ Runtime Package(如:Microsoft Visual C++ 2013 Runtime Package for Windows),
同时,项目生成要修改为X86或者X64,总之不能使有和AnyCPU。我这里使用的是X86.
 
 private async void Create()    {      //数据文件保存的位置      var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");      //打开创建数据库和表      using (var db = new SQLite.SQLiteConnection(dbPath))      {        //创建表        var result = db.CreateTable<Model.Person>();        await new MessageDialog("返回值:" + result).ShowAsync();      }    }    private async void Insert()    {      //连接数据库      var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");      using (var db = new SQLite.SQLiteConnection(dbPath))      {        //插入操作。首先声明一个集合        ObservableCollection<Person> Collection = new ObservableCollection<Person>();        //单条插入语句        db.Insert(new Person() { FirstName = "宋兴柱1", LastName = "Sindrol" });        Collection.Add(new Person() { FirstName = "宋兴柱2", LastName = "Sindrol1" });        Collection.Add(new Person() { FirstName = "宋兴柱3", LastName = "Sindrol2" });        //多条插入集合        var result = db.InsertAll(Collection);        await new MessageDialog("返回值:" + result).ShowAsync();      }    }    private async void Update()    {      //更新语句      var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");      using (var db = new SQLite.SQLiteConnection(dbPath))      {        SQLiteCommand cmd = db.CreateCommand("update person set FirstName='lisa' where LastName='Sindrol'");        var result = cmd.ExecuteNonQuery();        await new MessageDialog("返回值:" + result).ShowAsync();      }    }    private async void Delete()    {      var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");      using (var db = new SQLite.SQLiteConnection(dbPath))      {        //单行删除操作        db.Delete<Person>(1);        //多行删除        var result = db.DeleteAll<Person>();        await new MessageDialog("返回值:" + result).ShowAsync();      }    }    private async void Select()    {      var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db1.sqlite");      using (var db = new SQLite.SQLiteConnection(dbPath))      {        //查询所有数据绑定到UI        List<object> list = db.Query(new TableMapping(typeof(Person)), "select * from Person");        gridView.ItemsSource = list;      }    }

Person类如下图所示:

 class Person  {    [SQLite.AutoIncrement, SQLite.PrimaryKey]    public int ID { get; set; }    public string FirstName { get; set; }    public string LastName { get; set; }  }

数据库效果图: