本機端無痛接軌使用SQLite

以前撰寫視窗程式,最常使用的方式就是用Access,當作本機DB來使用,不然就要安裝MySQL或SQLExpress等等的。設計地端DB還是越簡單輕量越好,畢竟就只有服務一個連線,如果能像Access這樣最好,但是真的要用Access嗎?建議還是不要拉,效能有點低落勒,所以SQLite就成了最佳方案了。

使用方式相當簡單,首先,去SQLite官方,下載命令檔,這個可以幫助我們使用command模式。

  1. 連線官網: https://sqlite.org/download.html
  2. 找到command-line tools的壓縮包,把sqlite3.exe解出來用
  3. 把sqlite3.exe複製到專案檔主目錄下,方便作業。
D:\>sqlite3.exe Test.db
SQLite version 3.41.2 2023-03-22 11:56:21
Enter ".help" for usage hints.
sqlite>

    sqlite3.exe 在後面帶一個檔案名稱,這個就會是類似大型資料庫中的一個Schema或者說就是Database。

    在sqlite3的命令,都要在前面加上一個點,如果想要創建實體資料庫檔案,就下指令 .databases

    sqlite> .databases
    main: D:\Test.db r/w
    sqlite>
    

    這時候就會創造出一個實體檔案Test.db,因為是輕量DB,所以就只有一個Schema(Database),所以直接下Create table吧。

    sqlite> CREATE TABLE Log (PID INTEGER,Name TEXT,Money REAL ,PRIMARY KEY(PID));
    sqlite> .quit
    
    D:\>
    

    其實命令也沒幾個可以用,資料型態更是只有四種,名副其實的輕量喔。

    如果不想用命令字元,其實有一套GUI工作相當好用 DB Browser for SQLite ,甚麼作業系統的版本都有喔,不想打指令的可以多用用。

    SQLite的資料型態:

    1. INTEGER : 整數。是帶有正負值的整數。
    2. REAL : 浮點數值。
    3. TEXT : 文字字串值。以資料庫的文字編碼方式:UTF-8, UTF-16BE, UTF-16LE來儲存資料。
    4. BLOB : 二進位大型物件(Binary Large OBject)。

    VS中使用SQLite

    1. 首先要用 Nuget工具 安裝 System.Data.SQLite
    2. 創建SQLite的實體檔案,如果沒有可以開啟自動新增模式。
    3. 簡單舉例如下:
    public void SampleSQLite()
    {
    	// 本地資料庫連線(檔案)
    	var Connection_String = new SQLiteConnectionStringBuilder("Data Source=Test.db; Version = 3; New = False; Compress = True;");
    	try
    	{
    		using (var connection = new SQLiteConnection(Connection_String)
    		{
    			connection.Open();
    			using (var command = connection.CreateCommand())
    			{
    				command.CommandText = "REPLACE INTO Log (PID, Name, Money) VALUES (@PID, @Name, @Money)";
    				command.Parameters.AddWithValue("@PID", 1);
    				command.Parameters.AddWithValue("@Name", "Mika");
    				command.Parameters.AddWithValue("@Money", 1000.0);
    				command.ExecuteNonQuery();
    			}
    		}
    	}
    	catch (Exception)
    	{
    
    	}
    }
    

    More From Forest Beat

    桜のフリ

    設定Docker中node-Red的掛載

    容器最強的部份,就是把資料分離出來,因此要設定給容器一個host的掛載位置,那麼設定檔與資料內容就會分離出來,並存放在host的資料夾中。在Synology NAS,要先建好一個給Docker專用的「共用資料夾」,然後在該共用下建立新的資料夾,記得要設定為明確權限,並且給予Everyone的寫入權限,這樣就可以囉。
    技術
    0
    minutes
    三ツ峠の紅葉のフリ

    Docker安裝node-Red設定檔settings.js的位置

    如果採用不將資料掛載出來的方式建立dockek的NodeRED,那設定檔會在哪邊呢? 要如何進行修改呢?答案很簡單,要能夠終端機到容器中,然後編輯/usr/src/node-red/node_modules/node-red/settings.js
    技術
    0
    minutes
    チューリップ畑のフリ

    Docker使用bridge與host網路的差異

    Docker使用bridge網路的好處是封閉但是可以聯網,容器彼此之間也無法辦訪,可以做到簡單的隔離,port可以與host重複,反正在轉port即可。host網路就有點危險了,就是實實在在以host的網路進行連線,因此同網路中,能夠看見它,除此之外,不可以與host主機使用相同的port,例如80已經被host用掉的,就不能再容器中使用80。
    技術
    0
    minutes
    つくしのフリ

    用Docker佈署新的服務

    下載專用的Image檔後,就可以副本產生容器,所以要有多少個都沒問題。因為是共用Image檔案所以會很省空間,另外資料可以掛載出來,這樣又能做到完全分離,例如Mariadb資料庫,可以把資料與設定檔掛載出來,日後要重灌或更新容器就很簡單。
    技術
    0
    minutes
    spot_imgspot_img