我有一个用户表:
Name varchar(20)
Picture image
我想将图像存储到Picture列中 - 如何使用SQL Scripts实现此目的?
答案 0 :(得分:10)
以下是将图像存储到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);
答案 1 :(得分:2)
对于纯脚本访问,请在联机丛书中查找BULK命令。 SQL Server 2005允许您直接从磁盘提取二进制数据。但是,这不适用于以前版本的SQL Server。