SQLite数据库(文件)

Posted wyp1988

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite数据库(文件)相关的知识,希望对你有一定的参考价值。

  • SQLite
    • SQLite is a self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine.
    • https://www.sqlite.org/index.html
    • License: Public Domain, Open-Source, not Open-Contribution
  • 管理工具
  • 特殊语法
  • 密码/加密
    • SQLite有密码功能,并且设置密码之后,数据库文件就会被加密,可以使用notepad++的工具查看加密前后的文件内容,加密前都是明文,包括数据库元数据和数据等
    • SQLite for .NET (System.Data.SQLite)提供了在SQLiteConnection上修改/设置密码的函数:public void ChangePassword(string newPassword);
    • 技术分享图片
      using (SQLiteConnection connection = new SQLiteConnection(dbFileConnectionString))
                  {
                      connection.Open();
                      connection.ChangePassword(GenerateEncryptedDBPwd());
                      connection.Close();
                  }
      View Code
    • 为了信息安全,可以自行生成特殊密码
      • 比如结合windows用户的sid程序自定义的一个密钥组合起来使用AES加密得到密码。这样在客户端程序中,就可以为每个用户生成一个特定密码的数据库文件,那么不同用户的密码就不同了。同时保证了用户特殊性和程序特征。
      • 技术分享图片
                    System.Security.Principal.WindowsIdentity currentUser = System.Security.Principal.WindowsIdentity.GetCurrent();
                    string sid = currentUser.User.ToString();
        View Code
  • 在代码中构造连接字符串(不用自己拼各个部分了)
    • 技术分享图片
                  SQLiteConnectionStringBuilder builder = SQLiteFactory.Instance.CreateConnectionStringBuilder() as SQLiteConnectionStringBuilder;
      
                  // set up connection string for user data db in code
                  builder.DataSource = userDataDBFilePath;
                  builder.Password = GenerateEncryptedDBPwd();
                  userDataDB = new UserDataContext(builder.ToString());
      View Code

以上是关于SQLite数据库(文件)的主要内容,如果未能解决你的问题,请参考以下文章

使用片段从数据库 SQLite 获取数据时出错

如何在片段中访问 SQLite 数据到 ListView

如何在片段类的列表视图中显示 SQLite 数据库?

当我从用户获取数据并将其保存到 SQLite 数据库中时,我应该怎么做才能使列表视图在片段中工作

如果我想从另一个片段中添加书签,为啥我的书签单词没有保存到 sqlite 数据库?

导航抽屉片段 Sqlite