zoukankan      html  css  js  c++  java
  • 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; }
        }

    数据库效果图:

  • 相关阅读:
    【转】内部Handler类引起内存泄露
    检测是否存在相机硬件代码
    asp.net 过滤器
    iis 中经典和集成模式对应webconfig节点
    事务
    C# Excel操作
    一步一步部署SSIS包图解教程
    js和.net操作Cookie遇到的问题
    File,FileInfo,Directory,DirectoryInfo
    C#文件Copy
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/4529885.html
Copyright © 2011-2022 走看看