C#存儲BLOB對象分析
學習C#語言時,經常會遇到C#存儲BLOB對象問題,這里將介紹C#存儲BLOB對象問題的解決方法。
C#存儲BLOB對象
檢索和C#存儲BLOB對象是一個很簡單的過程;相反的過程,在 SQL Server 中C#存儲BLOB對象,也一樣簡單。這里我要指出的是,前面的例子中使用了由這個例子中的代碼存儲到表中的 BLOB 數據
- SqlConnection conn =null;
- SqlCommand cmd = null;
- SqlParameter param = null;
- FileStream fs = null;
- const string sConn = "server=(local);Initial
- Catalog=Northwind;UID=ctester;PWD=password";
- try {
- conn = new SqlConnection(sConn);
- cmd = new SqlCommand("UPDATE Categories SET Picture = @Picture WHERE
- CategoryName = 'Seafood'", conn);
- fs = new FileStream("c:\\Builder.doc", FileMode.Open, FileAccess.Read);
- Byte[] blob = new Byte[fs.Length];
- fs.Read(blob, 0, blob.Length);
- fs.Close();
- param = new SqlParameter("@Picture", SqlDbType.VarBinary, blob.Length,
- ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, blob);
- cmd.Parameters.Add(param);
- conn.Open();
- cmd.ExecuteNonQuery();
- } catch (SqlException e){
- Console.Write("SQL Exception: " + e.Message());
- } catch (Exception e) {
- Console.Write("Exception: " e.Message());
- }
示例代碼從本地文件系統插入一個 Word 文檔到數據庫中。它與常規的數據庫更新操作類似,然而,FileStream 和 Bytes 對象用于處理將 Word 文檔插入到數據庫中。另外一個變化是使用SqlParameter 對象將 BLOB 插入到數據庫字段中。這就允許數據可以直接從內存寫出到數據庫中。
不是所有的數據都是相等的,雖然字符串值是開發人員與數據庫交互時最常用的數據類型,但是其它數據類型也經常使用,比如數字和 BLOB。在編程時,將將這些對象視為二進制流對待。以上介紹C#存儲BLOB對象。
【編輯推薦】