2017-01-02 482 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