我的数据库中有一个表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中执行此操作?
,我需要将目录中的图像文件重命名为最新的商品标题名称。我知道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
答案 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();
}