• Windows 8 Metro应用中使用C#连接SQLite及创建数据库,数据表的增删改查


      1.Metro中使用SQLite数据库具体步骤如下:

      1).下载SQLite for WinRT

      地址:http://www.sqlite.org/download.html

      下载Precompiled Binaries for Windows Runtime,这是一个Visual Studio的一个扩展,文件以vsix为后缀,直接双击运行即可。(如下图)

      2).为项目添加引用

      创建一个项目,在解决方案在选择“引用->添加引用”,在引用管理器的左边列表中选择Windows->扩展,然后再右边的列表中选中如下图所示:

    注意:选择 SQLite for Windows Runtime 和 Microsoft Visual C++ Runtime Package

      3). 为项目添加C# 驱动

       在解决方案中,选择项目,单击右键,选择“管理NuGet程序包”,在管理器中进行如下图的操作:

    安装完成后,你的项目的根目录下会多出两个文件:SQLite.cs和SQLiteAsync.cs文件,我们就可以通过这两个类来操作SQLite了。

      2.创建数据库

      1).首先:声明一个MemberInfo类也就是表主键自动增长

       public class MemberInfo

         {

               [SQLite.AutoIncrement, SQLite.PrimaryKey]

           public int ID { set; get; }

           public string Name { set; get; }

                 public int Age { set; get; }

           public string Address { set; get; }

         }

     

      2).写一个方法用于创建数据库Member.sqlite和表MemberInfo

        private void Create()

             {

          string path =Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Member.sqlite");    //数据文件保存的位置  

          using (var db = new SQLite.SQLiteConnection(path))  //打开创建数据库和表

                 {

            db.CreateTable<MemberInfo>();

                  }

              }

      3).简单的操作sqlite数据库(增,删,改,查询)

         public void Insert(MemberInfo data)

            {        

         try

                {

           using (var db = newSQLiteConnection(path))

          {

                          db.Insert(data);

                    }

                }

        catch(Exception e)

                {

             throw e;

                }

            }

         publicvoid Delete(int id)

            {

             try

                  {

                      T data = Select(id);

               using (var db = newSQLiteConnection(path))

                      {

                          db.Delete(data);

                      }

                  }

           catch(Exception e)

                 {

           throw e;

                }

            }

       public void Insert(T data)

            {

          try

                 {

            using (var db = newSQLiteConnection(path))

           {

                           db.Insert(data);

                       }

                 }

         catch(Exception e)

                {

           throw e;

                }

            }

         publicvoid Delete(int id)

             {        

          try

                 {

                      T data = Select(id);

             using (var db = newSQLiteConnection(path))

                      {

                            db.Delete(data);

                       }

                }

         catch(Exception e)

                {

           throw e;

                }

            }

      public  MemberInfo Select(int id)

            {

           try

          {

            MemberInfo data = null;

            using (var db = newSQLiteConnection(path))

           {

              List<object> obj = db.Query(newTableMapping(typeof(MemberInfo)), string.Format("Select * from MemberInfo where ID={0}", id));

              if (obj != null&&obj.Count>0)

                          {

                                data = obj[0]  as MemberInfo;

                          }

                       }

           return data;

                }

         catch (Exception e)

                {

               throw e;

                }

            }

          publicvoid Updata(MemberInfo data)

            {

          try

                {

          using (var db = newSQLiteConnection(path))

                    {

                            db.Update(data);

                    }

                }

           catch(Exception e)

                 {

            throw e;

                }

            }

        publicObservableCollection<MemberInfo> SelectAll()

            {

           ObservableCollection<MemberInfo> list = newObservableCollection<MemberInfo>();

          using (var db =newSQLiteConnection(path))

                {

             List<object> query = db.Query(newTableMapping(typeof(MemberInfo)), "select * from MemberInfo");

             foreach (var mem in query)

                       {

                 MemberInfo info = mem asMemberInfo;

                            list.Add(info);

                     }

                }

        return list;    

            }

     

  • 相关阅读:
    一键完成SAP部署的秘密,想知道么?
    Azure进阶攻略丨Azure网络通不通,PsPing&PaPing告诉你答案
    在科技圈不懂“机器学习”?那你就out了
    狂欢圣诞节,Azure云邀你一起云端跑酷!
    计划程序:拒绝重复工作,让效率翻倍!
    爱,除了看怎么说,还要看怎么做 !
    Azure 12 月新公布
    开发者为何对Service Fabric爱不释手?值得关注!
    matlab之plot()函数
    对C++指针的一个比喻
  • 原文地址:https://www.cnblogs.com/akwwl/p/2815679.html
Copyright © 2020-2023  润新知