天天看點

CodeFirst實戰:用文本資料庫存檔軟體配置

背景:

CodeFirst實戰:用文本資料庫存檔軟體配置

以前要寫軟體的時候,在編寫使用者配置這一塊時,由于存檔資料庫不靠譜或大題小作,是以一般是存在文本中。

一開始是一個檔案儲存一個配置(圖個file.read與file.write的操作簡單)

由于軟體經常更新,使用者的配置也會不停的增加,又得相容以前,又要新增加,之後的配置又用了分隔與換行來來儲存多條配置。

重複多了之後,多少感覺到麻煩~~~

CodeFirst實戰:用文本資料庫存檔軟體配置

解決:

是以,對于dbimport,你看早期的版本,對于使用者的資料庫連結,也沒儲存配置,說白了就是懶啊。

後來有使用者反應要增加,加之cyq.data的文本資料庫功能相對越來越完善,以及使用上也友善了,是以就增加上去了。

是以今天就以這個為執行個體,講解一下是怎麼友善法:

對于dbimport來說,有兩個輸入框,為了友善存檔及下次啟動,需要儲存下并于下次啟動時還原:

CodeFirst實戰:用文本資料庫存檔軟體配置

實戰如下:

2:codefirst編寫個實體:

CodeFirst實戰:用文本資料庫存檔軟體配置

 class config : cyq.data.orm.ormbase

    {

        public config()

        {

            base.setinit(this, "config", "txt path={0};ts=0");

        }

        private int id{get;set;}

        private string key{get;set;}

        public string value{get;set;}

    }

CodeFirst實戰:用文本資料庫存檔軟體配置

說明:

表名:config;

{0}:代碼根目錄,即軟體運作目錄; 

ts=0:新增的識别參數,不建立config.ts的表結構檔案。 

3:接下來就是按鈕點選事件成功後,把資料為連結儲存:

CodeFirst實戰:用文本資料庫存檔軟體配置

 //儲存連結字元串。

                    using (config config = new config())

                    {

                        if (config.fill("key='connfrom'"))

                        {

                            config.value = connfrom;

                            config.update();

                        }

                        else

                            config.key = "connfrom";

                            config.insert(insertop.none);

                    }

CodeFirst實戰:用文本資料庫存檔軟體配置

如果連結已存在,就是更新,如果不存在,就是插入了。

4:軟體初運作的時候檢測資料是否存在,并設定初始值還原:

CodeFirst實戰:用文本資料庫存檔軟體配置

    using (config config = new config())

            {

                if (config.fill("key='connfrom'"))

                {

                    txtconnfrom.text = config.value.tostring();

                }

                if (config.fill("key='connto'"))

                    txtconnto.text = config.value.tostring();

            }

CodeFirst實戰:用文本資料庫存檔軟體配置

5:一切就緒,f5運作後,軟體目錄下就多了一個檔案(文本資料存存檔json或xml格式資料):

CodeFirst實戰:用文本資料庫存檔軟體配置

這裡提一下,如果文本資料庫連結不指定ts=0,在同一目錄下會建立資料庫結構:

CodeFirst實戰:用文本資料庫存檔軟體配置

示例就到這裡結束了。

對于codefirst,是支援所有資料庫,但是又有些許差別:

CodeFirst實戰:用文本資料庫存檔軟體配置

如果是對于sqlite,mssql,oracle,mysql等,由于資料是肯定是存到資料庫的,是以codefirst編碼運作後,肯定是會建立表結構到資料庫中,才能存儲資料。

意思就是,如果有資料庫字段變化,可能需要到資料庫裡修改對應的字段;

而文本資料庫,如果是增加或減少屬性字段,則完全無事,如果是删除或修改字段名稱,如果字段的資料不要,則也無事,如果原字段資料需要,自己打開事本,批量替換一下,也是相當友善。

CodeFirst實戰:用文本資料庫存檔軟體配置

總體來說,個人覺的codefirst的操作方式,還是文本資料庫來的實在與友善~~~ 而其它資料庫,雖然如果中間變更,還是要變更,那就又回到codelast了。。。

版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:<b>http://www.cnblogs.com/cyq1162/p/3213531.html</b>