数据库类型varbinary(MAX)在.net中的转换

 

1.在.net中把该地段定义为byte[]数组。

//数据库类型为varbinary(MAX)

private byte[] elementContent;

public byte[] ElementContent
{
get { return elementContent; }
set { elementContent = value; }
}

2.传值把需要传输的文件转化为二进制流

byte[] FileArray = UpLoadFile(fuCheck);

ElementContent=FileArray ;

方法

public byte[] UpLoadFile(FileUpload fu)
{
//获取由客户端指定的上传文件的访问
HttpPostedFile upFile = fu.PostedFile;
//得到上传文件的长度
int upFileLength = upFile.ContentLength;

byte[] FileArray = new Byte[upFileLength];

Stream fileStream = upFile.InputStream;
fileStream.Read(FileArray, 0, upFileLength);
return FileArray;
}



3.在后台直接赋值,不用类型转换
par[2] = new SqlParameter("@elementContent", SqlDbType.VarBinary);
par[2].Value = tbl_downLoad.ElementContent;



4.解析二进制流转换文件

DataTable dt = downDal.GetDown(downLoadId); //获取文件信息

Response.Buffer = true;
Response.Clear();
Response.ContentType = dt.Rows[0]["contentType"].ToString();
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(dt.Rows[0]["ElementName"].ToString(), System.Text.Encoding.UTF8)); //文件名称

Response.BinaryWrite((byte[])dt.Rows[0]["elementContent"]);//二进制流
Response.Flush();
Response.End();

 

 

转载于:https://www.cnblogs.com/LazycatYu/archive/2011/09/21/2184294.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值