2017-01-02 710 views
0

我的应用程序使用存储在可通过网络访问的文件中的数据库。到目前为止,我一直在使用MS-Access文件(.accdb),但我试图迁移到SQLite版本3(.db3)为SQLite v3数据库设置密码

我将SQLite NuGet包添加到我的项目中,并使用SQLiteStudio创建了一个SQLite数据库。我重构了我的数据库对象,使用System.Data.SQLite.SQLiteConnection而不是System.Data.OleDb.OleDbConnection,它运行良好。

但是,我以前的accdb数据库是密码保护的,我不知道如何在当前的SQLite数据库上应用密码。

任何人都可以教我做这件事吗?提前致谢!

+1

也许[this](http://stackoverflow.com/questions/1381264/password-protect-a-sqlite-db-is-it-possible)将帮助你 – Wudge

回答

0

我跟着the linkWudge在评论亲切任命上面,和它的作品,但我宁愿澄清需要做的工作:

  1. 要设置密码到未受保护的数据库:

    Dim conn = New SQLite.SQLiteConnection(
        "Data Source=C:\yourFolder\yourDB.db3;Version=3;") 
    conn.Open() 
    conn.ChangePassword("password") 
    conn.Close() 
    
  2. 要打开一个密码保护的数据库:

    Dim conn = New SQLite.SQLiteConnection(
        "Data Source=C:\yourFolder\yourDB.db3;Version=3;") 
    conn.SetPassword("password") 
    conn.Open() 
    conn.Close() 
    

    Dim conn = New SQLite.SQLiteConnection(
        "Data Source=C:\yourFolder\yourDB.db3;Version=3;Password=password;") 
    conn.Open() 
    conn.Close() 
    
  3. 从一个受密码保护的数据库中删除密码:

    Dim conn = New SQLite.SQLiteConnection(
        "Data Source=C:\yourFolder\yourDB.db3;Version=3;Password=password;") 
    conn.Open() 
    conn.ChangePassword(String.Empty) 
    conn.Close() 
    

PS。只要您选择System.Data.SQLite而不是Sqlite 3作为您的数据库类型,开放源代码数据库管理器SQLiteStudio就能够以这种方式打开受密码保护的文件。 (需要v 3.1.1,当前版本)。

+0

嗨VBobCat,我在做同样的我的vb.net项目,但它没有工作,我不明白我的错误。 我正在使用System.Data.SQLite(已下载的offccial sqlite-netFx46-setup-bundle-x86-2015-1.0.101.0.exe)。 经理也使用了DB.Browser.for.SQLite-3.10.1和SQliteStudio。 我tryed从代码和DB浏览器 设置密码,这是我的代码: 昏暗mDbConnection作为字符串=“数据源= C:\ TestDB.s3db;版本= 3; 昏暗CNN作为新SQLiteConnection(mDbConnection ) cnn.SetPassword(“测试”) cnn.Open() cnn.Close() – Anchor

+0

究竟是怎么了? – VBobCat

+0

此异常: 打开的文件是不是数据库文件的文件加密或不是一个数据库 – Anchor