正 文

使用ADO.NET 和C# 处理BLOB 数据


www.7dspace.com  更新日期:2005-12-4 5:24:43  七度空间


存储 BLOB 数据

检索和保存 BLOB 对象是一个很简单的过程;相反的过程,在 SQL Server 中存储 BLOB 对象,也一样简单。这里我要指出的是,前面的例子中使用了由这个例子中的代码存储到表中的 BLOB 数据(Builder.doc)。

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。在编程时,将将这些对象视为二进制流对待。

本文作者:Tony Patton 的职业生涯开始于应用程序开发员,并已经获得了 Java、VB、Lotus 和 XML 认证,以支持其知识。

3页,页码:[1] [2] [3] 

上一篇:使用ASP.NET Global.asax 文件
下一篇:使用更安全的C字符串操纵
作者:Tony Patton  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐