zoukankan      html  css  js  c++  java
  • C#学习十之windows应用和windows phone应用中的SQLite操作

    Windows应用和windows phone应用可以用博客:http://www.cnblogs.com/clownice/p/4518639.html中WPF的方法使用SQLite数据库

    但是,还有另一种方法是使用SQLite:

    首先,在VS中的工具栏中有一项拓展和更新,进入后联机搜索拓展包

    根据开发的应用选用不同的拓展包,安装即可。

    然后,添加引用来引用这个拓展的应用,之后,需要调整运行架构为X64或X86否则会报错(在配置管理器中调整)。

    之后,右击项目名称进入管理Gu-net包,在里面加载两个类SQLite.cs和SQLiteAsync.cs

    到这里,配置就完成了,然后是这两个类中使用数据库的一些操作:

     class DatabaseHelperClass
        {
            SQLiteConnection dbConn;
    
            //create Table
            public async Task<bool> OnCreate(string DB_PATH)
            {
                try
                {
                    if (!CheckFileExists(DB_PATH).Result)
                    {
                        using (dbConn = new SQLiteConnection(DB_PATH))
                        {
                            dbConn.CreateTable<Information>();
                        }
                    }
                    return true;
                }
                catch
                {
                    return false;
                }
            }
    
            private async Task<bool> CheckFileExists(string fileName)
            {
                try
                {
                    var store = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
    
            //Retrieve the specific information from the database
            public Information readRecord(int RecordId)
            {
                using (var dbConn = new SQLiteConnection(App.DB_PATH))
                {
                    var existingconact = dbConn.Query<Information>("select * from Information where Id =" + RecordId).FirstOrDefault();
                    return existingconact;
                }
            }
    
            // Retrieve the all contact list from the database. 
            public ObservableCollection<Information> ReadRecord()
            {
                using (var dbConn = new SQLiteConnection(App.DB_PATH))
                {
                    List<Information> myCollection = dbConn.Table<Information>().ToList<Information>();
                    ObservableCollection<Information> RecordList = new ObservableCollection<Information>(myCollection);
                    return RecordList;
                }
            }
    
            //Update existing conatct 
            public void UpdateRecord(Information record)
            {
                using (var dbConn = new SQLiteConnection(App.DB_PATH))
                {
                    var existingconact = dbConn.Query<Information>("select * from Information where Id =" + record.Id).FirstOrDefault();
                    if (existingconact != null)
                    {
                        existingconact.Website = record.Website;
                        existingconact.userName = record.userName;
                        existingconact.password = record.password;
                        existingconact.CreationDate = record.CreationDate;
                        dbConn.RunInTransaction(() =>
                        {
                            dbConn.Update(existingconact);
                        });
                    }
                }
            }
    
            // Insert the new contact in the Contacts table. 
            public void Insert(Information newrecord)
            {
                using (var dbConn = new SQLiteConnection(App.DB_PATH))
                {
                    dbConn.RunInTransaction(() =>
                    {
                        dbConn.Insert(newrecord);
                    });
                }
            }
    
            //Delete specific contact 
            public void DeleteRecord(int Id)
            {
                using (var dbConn = new SQLiteConnection(App.DB_PATH))
                {
                    var existingconact = dbConn.Query<Information>("select * from Information where Id =" + Id).FirstOrDefault();
                    if (existingconact != null)
                    {
                        dbConn.RunInTransaction(() =>
                        {
                            dbConn.Delete(existingconact);
                        });
                    }
                }
            }
            //Delete all contactlist or delete Contacts table 
            public void DeleteAllRecord()
            {
                using (var dbConn = new SQLiteConnection(App.DB_PATH))
                {
                    //dbConn.RunInTransaction(() => 
                    //   { 
                    dbConn.DropTable<Information>();
                    dbConn.CreateTable<Information>();
                    dbConn.Dispose();
                    dbConn.Close();
                    //}); 
                }
            }
    

      

  • 相关阅读:
    Linux之硬件资源管理
    Linux之vi 文本编辑命令
    [2]窗口程序的创建
    [1]cs辅助项目分解
    1.3 Windows操作系统
    (PYG)学习去除软件自效验
    CSUST 4006-你真的会树套树套树吗?(贪心|dp)
    CSUST 4003-你真的会泡面吗?(优先队列模拟)
    2020牛客暑期多校第八场I-Interesting Computer Game(离散化+并查集)
    2020牛客暑期多校K-Kabaleo Lite(贪心)
  • 原文地址:https://www.cnblogs.com/clownice/p/4521164.html
Copyright © 2011-2022 走看看