求助:如何将Byte[]保存成Word文档

DHZW 2008-01-23 07:17:19
求助:如何将Byte[]保存成Word文档

Oracle 10g 中的Blob字段如果存储的是图片,可以方便地用Image对象转化成本地图片(如代码中注释的两行).
问题是如果BLOB字段中存储的是Word文档,如何取回在本地打开或保存.
谢谢

private void GetDBBlob(string strSelectCommandText)
{
DataSet ds = new DataSet();

ds = SelectOracle(strSelectCommandText, "T_ZTWJ");
int rowCount = ds.Tables[0].Rows.Count;

if (rowCount > 0)
{
Byte[] byteBLOBData = new Byte[0];
byteBLOBData = (Byte[])(ds.Tables[0].Rows[0]["WJNR"]);

System.IO.MemoryStream stmBLOBData = new System.IO.MemoryStream(byteBLOBData);
//pictureBox1.Image = System.Drawing.Image.FromStream(stmBLOBData);
//return System.Drawing.Image.FromStream(stmBLOBData);
}
else
{
//return null;
}
}
...全文
389 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lextm 2008-01-24
  • 打赏
  • 举报
回复
Byte[] byteBLOBData = new Byte[0];
byteBLOBData = (Byte[])(ds.Tables[0].Rows[0]["WJNR"]);
===============
这个写法有问题。

应该直接写
Byte[] byteBLOBData = (Byte[])(ds.Tables[0].Rows[0]["WJNR"]);
DHZW 2008-01-23
  • 打赏
  • 举报
回复
谢谢.明白了.
duping9626 2008-01-23
  • 打赏
  • 举报
回复

private void GetDBBlob(string strSelectCommandText)
{
DataSet ds = new DataSet();

ds = SelectOracle(strSelectCommandText, "T_ZTWJ");
int rowCount = ds.Tables[0].Rows.Count;

if (rowCount > 0)
{
Byte[] byteBLOBData = new Byte[0];
byteBLOBData = (Byte[])(ds.Tables[0].Rows[0]["WJNR"]);

string fileName = "mydoc.doc";
System.IO.FileStream fs=new System.IO.FileStream(fileName,System.IO.FileMode.Create,System.IO.FileAccess.Write);
System.IO.BinaryWriter bw= new System.IO.BinaryWriter(fs);
bw.Write(byteBLOBData);

bw.Flush();
fs.Flush();
bw.Close();
fs.Close();
}
else
{
//return null;
}
}
DHZW 2008-01-23
  • 打赏
  • 举报
回复
如何写啊?
lextm 2008-01-23
  • 打赏
  • 举报
回复
如果当时放入BLOB的就是该Word文档,用BinaryWriter写到后缀为.doc文件中就好了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧