需要有关更新SP的帮助以及重命名目录中的文件

时间:2011-08-30 05:06:56

标签: c# asp.net sql

我的数据库中有一个表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.bmpNameAAA-CaptionAXYZ_300X500.bmp

如何在用于更新商品表的更新SP中执行此操作?

,我需要将目录中的图像文件重命名为最新的商品标题名称。我知道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 :(得分:0)

这是一个简单的伪代码:

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();
}