今天就跟大家聊聊有關(guān)C#中如何讀取BLOB數(shù)據(jù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)專注于色尼網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供色尼營銷型網(wǎng)站建設(shè),色尼網(wǎng)站制作、色尼網(wǎng)頁設(shè)計、色尼網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造色尼網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供色尼網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
什么是 BLOB?
BLOB 是二進(jìn)制大對象(binary large object)的首字母縮寫,是在 SQL Server 中作為一個單一實(shí)體存儲的二進(jìn)制數(shù)據(jù)集合。BLOB 主要用于保存多媒體對象,比如圖像、視頻和聲音,但是它們還可以存儲程序,甚至是代碼片斷。雖然 SQL Server 支持 BLOB,但不是所有數(shù)據(jù)都支持。
C#讀取BLOB數(shù)據(jù)
有幾種方法可以用來從 SQL Server 數(shù)據(jù)庫讀取數(shù)據(jù)。首先,你可以逐行讀取數(shù)據(jù);或者,你可以選擇從特定列中讀取數(shù)據(jù)。最簡單的方法是訪問特定的列,下面我們先討論這種方法。
C#讀取BLOB數(shù)據(jù)要求工作在字節(jié)級。幸運(yùn)的是,SqlDataReader 對象有一個 GetBytes 方法用于以字節(jié)方式訪問一個列的數(shù)據(jù)。一旦字節(jié)被讀取,它們就可以與一個 FileStream 對象組合,以將 BLOB 對象保存到一個文件中。下面的 C#代碼給出了這個例子:
Byte[] blob = null; FileStream fs = null; const string sConn = "server=(local);Initial Catalog=Northwind;UID=ctester;PWD=password"; try { SqlConnection conn = new SqlConnection(sConn); SqlCommand cmd = new SqlCommand("SELECT Picture FROM Categories WHERE CategoryName='Builder'", conn); cn.Open(); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); blob = new Byte[(sdr.GetBytes(0, 0, null, 0, int.MaxValue))]; sdr.GetBytes[0, 0, blob, 0, blob.Length); sdr.Close(); conn.Close(); fs = new FileStream("c:\\Builder.doc", FileMode.Create, FileAccess.Write); fs.Write(blob, 0, blob.Length); fs.Close(); } catch (SqlException e){ Console.WriteLine("SQL Exception: " + e.Message); } catch (Exception e) { Console.WriteLine("Exception: "+ e.Message); }
看完上述內(nèi)容,你們對C#中如何讀取BLOB數(shù)據(jù)有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。