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

            }

     

  • 相关阅读:
    数据库访问性能优化--应用开发
    苹果终端wifi图标点亮慢和portal弹窗机制分析以及处理办法和建议
    蓝牙固件升级(OTA升级)原理设计
    C语言:内存字节对齐详解
    linux du与ls查看文件大小时的区别
    80211 组播速率及组播转单播
    视频帧、码流计算
    IEEE802.11数据帧在Linux上的抓取 80211格式转8023帧格式
    wifidog源码分析
    无线路由:关于WDS,Repeater等模式的说明
  • 原文地址:https://www.cnblogs.com/akwwl/p/2815679.html
Copyright © 2011-2022 走看看