数据库中二进制数据主要是用来存储什么数据的?麻烦举例说说

数据库中二进制数据主要是用来存储什么数据的?麻烦举例说说,第1张

很多数据库将存储二进制的字段都定义为BLOB类型,实际上它可以存储任何数据类型,比如数字型或者是字符型,当然了,数据库中已经有数字型和字符型自己的定义,所以我们一般也不会将这些数据存储在BLOB中,在BLOB中最常存储的数据是文件数据,原因是因为BLOB有个特点,那就是存入的数据长度不受什么限制,明白了吧?如果你想保存一张图片在数据库中,那么BLOB类型的字段是你唯一的选择。

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

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

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

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

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

SqlCommand command = new SqlCommand( sqlText, connection)

//open the database and get a datareader

connection.Open()

SqlDataReader dr = command.ExecuteReader()

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

{

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

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

}

connection.Close();

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9952450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存