【最佳實踐系列】靈活使用單機應用程序中的數據庫

一、工程背景

  假定一個應用程序(App)需要新建、打開和保存項目文件,並且每個項目文件中又包含數據文件的情形,那麼要求在創建或編輯項目的過程中動態的創建數據庫文件,或者已知數據庫結構時在應用程序中包含一個空的數據庫文件,然後在需要時將其副本拷貝到當前項目的工作目錄下。下面給出一種實現模式,實現這種面向單機的數據庫使用方式。

二、工具

  我們以VS2012+SQLite作爲工具實現上述任務。選擇SQLite的主要因爲它是基於文件系統的數據庫,能夠方便地執行拷貝和連接等操作。另外,經本人簡單測試發現其連接速度明顯優於內置的SQL Server Compact數據庫。總之,對於桌面應用通常足夠了。

三、關鍵技術

  1、創建數據庫

   假定App所需數據庫結構已知,那麼在VS2012的服務器資源管理器中右鍵點擊“數據連接”,然後“添加連接”。在“數據源”項中選擇System.Data.SQLite Database File,然後點擊“New”按鈕,定位到一個目錄,輸入數據庫文件名,如MyDb.db,點擊保存。測試連接成功後,點確定返回服務器資源管理器視圖。此時可以看到已創建的數據庫連接,然後就可以爲其添加數據表了。

  2、在特定項目中使用數據庫

  將數據庫複製到當前App項目的工作目錄下,可以使用Microsoft.VisualBasic.FileIO.FileSystem.CopyFile()函數實現數據庫文件的拷貝。然後建立與該數據庫文件的連接即可以“斷開連接層”的方式對數據庫進行操作了。  

string conStr= @"data source=c:\MyDb.db";
    using (SQLiteConnection scon = new SQLiteConnection(conStr))
    {
        SQLiteDataAdapter sda = new SQLiteDataAdapter("SELECT * FROM Table1", scon);
        DataTable dt = new DataTable();
        sda.Fill(dt);
    }

  注意引用System.Data和System.Data.SQLite兩個命名空間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章