2017-05-24 147 views
1

我有一個巨大的問題...與SQLite開發桌面應用程序,但在複製/粘貼過程中,我失去了權力和過程被終止,所以基地丟失。但是,我找到了一種使用EaseUS Data Recovery嚮導來恢復它的方法,但現在基礎已加密。當我嘗試使用conn.Open()打開連接時;我得到這個錯誤。如果我試圖用DB Browser for SQLite打開它,它會問我一個SQLCipher加密密碼,因此它接到我的數據是錯誤的。SQLITE文件被加密或不是數據庫

是否有任何默認密碼? 爲什麼會發生這種情況,以及如何防止它再次發生? 我能做什麼?

在此先感謝。

+0

你真的加密它嗎?如果不是,請查看「或」後面的部分。 –

+0

我沒有加密它。連接字符串爲 m_dbConnection = new SQLiteConnection(「Data Source = Baza.sqlite; Version = 3; Read Only = False; Journal Mode = Off」); ,它一直工作得很好,直到它被刪除。我發現它的名稱,它說這是sqlite文件。它沒有sens ..這是一個數據庫,並沒有加密,但不知何故變得加密 – Goran

回答

0

您的數據庫沒有被加密(這只是錯誤消息中的兩個選項之一)。

您的數據恢復工具沒有恢復正確的數據;你在文件中有什麼是別的。

您必須從備份中恢復數據庫文件。

+0

我試着用兩種不同的恢復工具(其中一個是微軟官方建議的),發現3個相同的數據庫(數據庫名稱是「Baza 「所以我100%確定它是數據庫並且是SQLite文件)。嘗試所有的人,並與我所有的同樣的錯誤... 但是,但是,你有任何其他的想法如何備份? – Goran

+0

SQLite數據庫只是提交;你可以製作副本(當他們沒有打開時)。 –

+0

對不起,你完全正確。看來數據庫已損壞。經過2天的研究結果如下: - 使用DB SQLite瀏覽器打開數據庫 - >錯誤消息:文件已加密或不是數據庫。 - 我與Zetetic支持(SQLCipher開發人員)聯繫 - 答案是數據庫本身不可能被加密。 - 嘗試使用命令行和sqlite3打開數據庫:相同的錯誤消息。 - 試圖用XVI32 HEX編輯器打開它。另外,打開的很少的數據庫工作正常,發現標題有很大的不同。 – Goran

1

好了,終於找到了一個解決方案,工程,以便張貼的答案,如果任何人都會有同樣的煩惱,像我一樣..

首先,要用好恢復軟件(https://diskdigger.org/)。我嘗試了其中的4個,這是最好的。

修復數據庫,我發現3級的解決方案,如果沒有備份工作:

  1. 開放使用DB瀏覽器導出數據庫到SQL數據庫損壞。不管你想要怎樣命名。然後,從SQL創建新的數據庫並導入數據庫。
  2. 有一些有用的軟件可以修復損壞的數據庫。您可以從https://www.systoolsgroup.com/下載
  3. 從sqlite.org下載「sqlite3」。並在命令行中導航到「sqlite3」解壓縮到的文件夾。然後嘗試轉儲使用.dump整個數據庫,並使用這些命令來創建一個新的數據庫:

    sqlite3 corrupt_table_name.sqlite ".dump" | sqlite3 new.sqlite 
    
0

的問題是在我的情況sqlcipher版本升級,每次更新我的吊艙,它會自動升級sqlcipher和錯誤發生。

要快速修復,只需手動添加SDK而不是Pod安裝。併爲適當的解決方案使用此鏈接GitHub Solution

相關問題