Rahul Saini Ответов: 2

Одно и то же изображение не обновляется в базе данных с помощью оператора if-else


ALTER PROCEDURE  [dbo].[SP_Updatemstproduct]
(
	@poProductId int ,
	@caCategoryId int,
	@poProductName varchar(200),
	@poDescription varchar(300),
	@poSmallImage varchar(200),
	@poIsActive varchar(1),
    @poOrder int
	--@poCreatedDate datetime
)

AS
BEGIN
     IF (@poSmallImage = '')
begin
UPDATE [mst_product]
   SET 
      [caCategoryId] = @caCategoryId, 
      [poProductName] = @poProductName, 
      [poDescription] = @poDescription, 
      [poSmallImage] = @poSmallImage, 
      [poIsActive] = @poIsActive,
      [poOrder]=@poOrder
   --[poCreatedDate] = @poCreatedDate
 WHERE poProductId=@poProductId
END
else
begin
UPDATE [mst_product]
   SET 
      [caCategoryId] = @caCategoryId, 
      [poProductName] = @poProductName, 
      [poDescription] = @poDescription, 
      --[poSmallImage] = @poSmallImage, 
      [poIsActive] = @poIsActive,
      [poOrder]=@poOrder
   --[poCreatedDate] = @poCreatedDate
 WHERE poProductId=@poProductId
end 
end


Что я уже пробовал:

на самом деле я пробовал базу данных это же изображение не обновляется в базе данных
Я использовал этот код для обновления
if (fileImage.PostedFile != null)
            {
                string FileName = Path.GetFileName(fileImage.PostedFile.FileName);
                fileImage.SaveAs(Server.MapPath("Images/" + FileName));

и это поле используется для обновления SP
cmd2.Parameters.AddWithValue("@poSmallImage", "Images/" + FileName);

2 Ответов

Рейтинг:
2

RickZeeland

Я думаю, что ваша проблема в линии:

IF (@poSmallImage = '')


Рейтинг:
1

OriginalGriff

Ну...IF никогда не будет успешным, поэтому код обновления никогда не будет выполняться.
Вы всегда передаете непустую строку SP (она всегда начинается с текста " Images/"), поэтому IF всегда не будет соответствовать пустой строке.
Возможно, вы хотели этого:

IF (@poSmallImage != '')