如果要求把word文件存储在sql server中时,就是存的时候先把文件转成byte[],然后赋值给定义的image参数,最后运行SQL命令进行提交。
取的时候把image列转成byte[]类型的,然后赋值给byte[]类型的变量。
下面的例子演示了如何从数据库中取出数据保存成word文件
FileStream fs;
BinaryWriter bw;
int BufferSize=100;
byte[] OutPutByte=new byte[BufferSize];
long FinishedBytes,StartIndex;
string filePath=this.Request.PhysicalApplicationPath+@"temp/wordData.doc";
while (reader.Read())
{
fs=new FileStream(filePath,FileMode.OpenOrCreate,FileAccess.Write);
bw=new BinaryWriter(fs);
StartIndex=0;
//将字节流读入outbyte缓冲区中并返回读取的字节数
FinishedBytes=reader.GetBytes(0,StartIndex,OutPutByte,0,BufferSize);
//当读取的字节流达到缓冲区允许的最大长度时要卸载缓冲区内的数据并将数据写入文件
while (FinishedBytes==BufferSize)
{
bw.Write(OutPutByte);
bw.Flush();
//重新设定开始读取的位置,并继续读取和写数据
StartIndex+=BufferSize;
FinishedBytes=reader.GetBytes(0,StartIndex,OutPutByte,0,BufferSize);
}
//将缓冲区内最后剩余的数据写入文件
if(FinishedBytes!=0)
bw.Write(OutPutByte,0,(int)FinishedBytes-1);
bw.Flush();
bw.Close();
fs.Close();
}