簡體   English   中英

使用C#導出SQLite數據庫的最佳實踐

[英]Exporting a SQLite database using C#, best practices

我正在嘗試為我的數據庫應用程序實現導出功能。 我正在使用C#,並具有我正在使用的C#的SQlite包裝器。 請原諒我對數據庫概念/通用用法的無知,這是我的第一個數據庫應用程序。

導出: SQLite數據庫很容易存儲在單個s3db文件中。 因此,要導出,我只需要使用System.IO.File.Copy復制該文件? 這是最好的方法嗎? 最后,通過導出,在復制文件之前是否需要關閉所有數據庫連接? 同樣,針對這種情況的最佳做法將有很大的幫助...對於這種情況下的一些事情,我不確定。 例如...

如果數據庫很大並且副本需要一段時間,該怎么辦? 用戶可以開始導出,然后立即嘗試將某些內容插入數據庫,這顯然是一個問題。 復制時應該鎖定程序嗎?

與往常一樣,感謝您的協助。

我為SQL Server CE做過類似的功能,在概念上與sqlite非常相似。 解決該問題的最安全方法是建議您:關閉所有數據庫連接,並防止用戶再打開(我在顯示備份進度的整個應用程序上使用模式窗口進行處理)。 同樣,我本身還沒有使用sqlite完成此操作,但是使用SQL Server CE,它是一個簡單的文件副本。

要使整個WinForms應用程序的窗口成為模態窗口,只需使用MessageBox.Show(),而不指定所有者。

復制文件的優點僅僅是,替代方法(重新創建數據庫並插入記錄)肯定會花費更多時間。 如果您的應用允許更改源或導出,則絕對應該鎖定該操作。

復制是最簡單的方法,但是我不確定這是最好的方法。 除了必須確保在復制過程中鎖定文件之外,您可能還希望將數據轉儲為一種格式,該格式比您所使用的特定SQLite版本的二進制表示形式更具可移植性。

將所有數據轉儲到文件中與復制一樣容易。

參見,例如: 本頁中的 “將整個數據庫轉換為ASCII文本文件”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM