Чтобы выполнить эту работу, вам придется прыгнуть через несколько обручей, но общий подход заключается в том, чтобы сначала захватить изображение в строку base64
.
var encodedImageString = Convert.ToBase64String(imageBytes);
Оттуда вы можете передать строку в вашу хранимую процедуру. Затем вам придется преобразовать его обратно в двоичный файл.
ALTER PROCEDURE [dbo].[spInsertpic]
(
@ID INT,
@EncodedCapturedPhoto VARCHAR(MAX)
)
AS
DECLARE @CapturedPhoto IMAGE
SET @CapturedPhoto = cast(N'' as xml).value('xs:base64Binary(sql:variable("@EncodedCapturedPhoto"))', 'VARBINARY(4000)');
IF EXISTS (SELECT * FROM tbpeople WHERE ID=@ID)
BEGIN
UPDATE tbPeople
SET
DateCapturedPhoto = getdate(),
CapturedPhoto=@CapturedPhoto
WHERE ( ID= @ID)
END
Else
Begin
INSERT INTO tbPeople (
ID
, CapturedPhoto
)
VALUES
(
@ID
, @CapturedPhoto
)
END