如何使用存储过程在sql中存储图像?

-1 sql sql-server asp.net stored-procedures

在我的网页图片从文件上传控件中获取,它必须存储在 sql server 中。如何编写存储过程以在 sql server 中保存图像?

Tis*_*sho 5

一些示例代码(未测试,可能需要一些修复):

CREATE PROCEDURE SaveFile(@id int, @file varbinary(max)) AS

INSERT INTO MyFiles VALUES(@id, @file)
GO
Run Code Online (Sandbox Code Playgroud)

在 .NET 代码中:

SqlCommand comm = new SqlCommand(@"SaveFile")
comm.CommandType = CommandType.StoredProcedure;

SqlParameter id = new SqlParameter("int", SqlDbType.Int);
id.value = 1; // some id

FileStream fileStream = ... your file;
byte[] buf = new byte[fileStream.length];
fileStream.Read(buf, 0, buf.length);
SqlParameter file = new SqlParameter("@file", SqlDbType.VarBinary, buf.Length);
file.Value = buf;

comm.Parameters.Add(id)    
comm.Parameters.Add(file)

comm.Execute();
Run Code Online (Sandbox Code Playgroud)