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; }
    }

数据库效果图:

技术分享

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。