<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 使用 C# 在 SQLite 中處理圖像 > 原文: [http://zetcode.com/db/sqlitecshaimg/](http://zetcode.com/db/sqlitecshaimg/) 在 SQLite C# 教程的這一章中,我們將使用圖像文件。 請注意,有些人反對將圖像放入數據庫。 在這里,我們僅展示如何執行此操作,并且避免了是否將圖像保存在數據庫中的技術問題。 ```cs sqlite> CREATE TABLE Images(Id INTEGER PRIMARY KEY, Data BLOB); ``` 對于此示例,我們創建一個名為`Images`的新表。 對于圖像,我們使用`BLOB`數據類型,代表二進制大對象。 ## 插入圖像 在第一個示例中,我們將圖像插入 SQLite 數據庫。 ```cs using System; using System.IO; using System.Data; using Mono.Data.Sqlite; public class Example { static void Main() { string cs = "URI=file:test.db"; using(SqliteConnection con = new SqliteConnection(cs)) { con.Open(); byte[] data = null; try { data = File.ReadAllBytes("woman.jpg"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } SqliteCommand cmd = new SqliteCommand(con); cmd.CommandText = "INSERT INTO Images(Data) VALUES (@img)"; cmd.Prepare(); cmd.Parameters.Add("@img", DbType.Binary, data.Length); cmd.Parameters["@img"].Value = data; cmd.ExecuteNonQuery(); con.Close(); } } } ``` 我們從當前工作目錄中讀取圖像,并將其寫入 SQLite `test.db`數據庫的`Images`表中。 ```cs byte[] data = null; ``` 圖像數據將存儲在字節數組中。 ```cs data = File.ReadAllBytes("woman.jpg"); ``` `ReadAllBytes()`方法打開一個二進制文件,將文件的內容讀取到字節數組中,然后關閉該文件。 ```cs cmd.CommandText = "INSERT INTO Images(Data) VALUES (@img)"; cmd.Prepare(); ``` 我們準備一個 SQL 語句,用于將字節數組插入`Images`表的`Data`列中。 ```cs cmd.Parameters.Add("@img", DbType.Binary, data.Length); cmd.Parameters["@img"].Value = data; cmd.ExecuteNonQuery(); ``` 我們將二進制數據綁定到預備語句。 然后執行該語句。 該圖像被寫入數據庫表。 ## 讀取圖像 在本節中,我們將執行相反的操作。 我們將從數據庫表中讀取圖像。 ```cs using System; using System.IO; using Mono.Data.Sqlite; public class Example { static void Main() { string cs = "URI=file:test.db"; using(SqliteConnection con = new SqliteConnection(cs)) { con.Open(); SqliteCommand cmd = new SqliteCommand(con); cmd.CommandText = "SELECT Data FROM Images WHERE Id=1"; byte[] data = (byte[]) cmd.ExecuteScalar(); try { if (data != null) { File.WriteAllBytes("woman2.jpg", data); } else { Console.WriteLine("Binary data not read"); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } con.Close(); } } } ``` 我們從`Images`表中讀取圖像數據,并將其寫入另一個文件`woman2.jpg`中。 ```cs cmd.CommandText = "SELECT Data FROM Images WHERE Id=1"; ``` 該行從表中選擇圖像數據。 ```cs byte[] data = (byte[]) cmd.ExecuteScalar(); ``` 我們從數據庫表中檢索二進制數據。 數據存儲在字節數組中。 ```cs if (data != null) { File.WriteAllBytes("woman2.jpg", data); } else { Console.WriteLine("Binary data not read"); } ``` `WriteAllBytes()`方法創建一個新文件,將指定的字節數組寫入該文件,然后關閉該文件。 如果目標文件已經存在,則將其覆蓋。 當數據庫表為空并運行此示例時,我們得到一個空值。 因此,我們檢查空值。 SQLite C# 教程的這一部分專門用于讀取和寫入圖像。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看