现有一个sql数据库表如何读取二进制内容

 我来答
猪八戒网
2023-05-18 · 百度认证:重庆猪八戒网络有限公司官方账号
猪八戒网
猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。
向TA提问
展开全部

二进制数据由十六进制数表示,可以使用 binary、varbinary和 image数据类型存储。

binary固定长度(最多为8K)的二进制数据类型。

binary[ ( n) ] 固定长度的 n个字节二进制数据。N必须从 1 到 8,000。存储空间大小为 n4 字节。

varbinary可变长度(最多为8K)的二进制数据类型。

varbinary[ ( n) ]n个

字节变长二进制数据。n必须从 1 到 8,000。存储空间大小为实际输入数据长度 4个字节,而不是

n个字节。输入的数据长度可能为 0 字节。在 SQL-92 中 varbinary的同义词为 binary

varying。

image用来存储长度超过 8 KB 的可变长度的二进制数据。

除非数据长度超过 8KB,否则一般宜用 varbinary 类型来存储二进制数据。一般用来存放

Microsoft Word 文档、Microsoft Excel 电子表格、包含位图的图像、图形交换格式 (GIF) 文件和联合图像专家组 (JPEG)

文件。

在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server

解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。

参考下列C# 代码:

private void Page_Load(object sender, System.EventArgs e)

{

//get the image id from the url

string ImageId = Request.QueryString["img"];

//build our query statement

string sqlText = "SELECT img_data, img_contenttype FROM Image WHERE img_pk = "ImageId;

connection = new ( .AppSettings["DSN"].ToString() );

SqlCommand command = new SqlCommand( sqlText, connection);

//open the database and get a datareader

connection.Open();

dr = command.();

if ( dr.Read()) //yup we found our image

{

Response.ContentType = dr["img_contenttype"].ToString();

Response.BinaryWrite( (byte[]) dr["img_data"] );

}

connection.Close();

}

}

  • 官方电话
  • 官方服务
    • 官方网站
    • 八戒财税
    • 知识产权
    • 八戒服务商
    • 企业需求
    • 数字市场
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式