Нужна помощь с обновлением SP и переименованием файлов в каталоге - PullRequest
1 голос
/ 30 августа 2011

В моей базе данных есть таблица Commodity, а есть отдельная таблица CommodityImages.В таблице товаров есть поле CommodityCaption.Я сохраняю изображения в таблице CommodityImages, используя значение в этом поле следующим образом:

Таблица товаров: -

CommodityID | CommodityName | CommodityCaption | IsActive
__________________________________________________________
1           | NameA         |NameA-CaptionA     |True
2           | NameB         |NameB-CaptionB     |True

Таблица CommodityImages выглядит следующим образом:

CommodityImageID  | CommodityID  | CommodityImageName |

1                 | 1            |NameA-CaptionA_100X200.bmp  
2                 | 1            |NameA-CaptionA_300X500.bmp   
3                 | 2            |NameB-CaptionB_100X200.bmp  
4                 | 2            |NameB-CaptionB_300X500.bmp   

Теперь, когда поле «Заголовок» обновлено в таблице «Товар», скажем, заголовок для ID=1 изменен с NameA-CaptionA на NameAAA-CaptionAXYZ, я хочу, чтобы таблица CommodityIamges также обновлялась.

Как будто я хочу, чтобы имена изображений для ID=1 тоже обновлялись.Теперь, когда заголовок был изменен на NameAAA-CaptionAXYZ, имена изображений во второй таблице должны стать:

NameAAA-CaptionAXYZ_100X200.bmp и NameAAA-CaptionAXYZ_300X500.bmp

Как мне сделать это в моем SP обновлениякоторый используется для обновления Commodity Table?

Также , мне нужно переименовать файлы изображений в моем каталоге до последних имен Commodity Caption.Я знаю о File.Move(oldFileName, newFileName);, но как мне найти эти файлы изображений в моем каталоге и переименовать их?Все, что я когда-либо делал, это сохраняю файлы.

Как искать и переименовывать?

Обновление SP: -

-- Description: INSERT PROCEDURE TO INSERT & UPDATE IN Commodity TABLE          
-- =============================================          
ALTER PROC [SAN].[InsertUpdateCommodity]          
(           
@CommodityID BIGINT,  
@CommodityName nvarchar(100),  
@CommodityCaption nvarchar(100),
@Active BIT
)          
AS          
BEGIN   

 IF(@CommodityID =-1)   
  BEGIN          
   INSERT INTO  SAN.Commodity          
   (          
   CommodityName,   
   CommodityCaption,  
   Active
   )          
   VALUES          
   (          
   @CommodityName,   
   @CommodityCaption,  
   @Active
   )          
   SELECT SCOPE_IDENTITY()          
  END   

 ELSE          
  BEGIN          
   UPDATE SAN.Commodity  SET           
   CommodityName=@CommodityName,   
   CommodityCaption=@CommodityCaption,  
   Active=@Active 
   WHERE  CommodityID=@CommodityID    

  SELECT @CommodityID           
 END 

END   

1 Ответ

0 голосов
/ 30 августа 2011

Вот упрощенный псевдокод:

void UpdateCaption(int Id, string oldName, string newName) {
    db.StartTran();
    db.Exec(string.format("update Commodity set CommodityCaption = '{0}' 
            where commodityId = {1}", oldName, Id));

    List<CommodityImage> images = CommodityImages.Where(ci => ci.CommodityID = Id);
    foreach (var img in images) 
       img.CommodityImageName = img.CommodityImageName.Replace(oldName, newName);

    db.SubmitChanges();
    db.CommitTran();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...