【发布时间】:2009-04-13 17:00:11
【问题描述】:
我有一个用户表:
Name varchar(20)
Picture image
我想将图像存储到“图片”列中——如何使用 SQL 脚本来实现?
【问题讨论】:
-
客户是什么? SQL 管理器、.NET、Java?
标签: sql-server-2005
我有一个用户表:
Name varchar(20)
Picture image
我想将图像存储到“图片”列中——如何使用 SQL 脚本来实现?
【问题讨论】:
标签: sql-server-2005
这是一个将图像存储到 sql server 的示例代码:
SqlConnection conn = new SqlConnection(connectionString);
try
{
int imageLength = uploadInput.PostedFile.ContentLength;
byte[] picbyte = new byte[imageLength];
uploadInput.PostedFile.InputStream.Read (picbyte, 0, imageLength);
SqlCommand command = new SqlCommand("INSERT INTO ImageTable (ImageFile) VALUES (@Image)", conn);
command.Parameters.Add("@Image", SqlDbType.Image);
command.Parameters[0].Value = picbyte;
conn.Open();
command.ExecuteNonQuery();
conn.Close();
}
finally
{
if (conn.State != ConnectionState.Closed)
{
conn.Close();
}
}
注意:uploadInput 是一个文件输入控件,用于将图像文件上传到服务器。取自 ASP.NET 应用程序的代码。
编辑:这是插入图像类型列的脚本:
INSERT INTO ImageTable (ImageColumn)
SELECT ImageColumn FROM
OPENROWSET(BULK N'C:\SampleImage.jpg', SINGLE_BLOB)
AS ImageSource(ImageColumn);
【讨论】:
对于纯脚本访问,请在联机丛书中查找 BULK 命令。 SQL Server 2005 允许您直接从磁盘中提取二进制数据。但是,这不适用于以前版本的 SQL Server。
【讨论】: