我想从 SQL 获取产品图像列表以显示在图像幻灯片中。
但是,我不确定从 MS SQL 存储过程返回数据的最佳方式。
问题是,使用下面的 SP,我得到了每个图像的重复记录。理想情况下,我想获得一个数组或字符串列表或某种方式来从单个记录中拆分数据。但是,我对其他解决方案持开放态度。我的目标是以直观的方式获取页面上的图像。这是针对 ASP.Net C# 应用程序的。
这是我的存储过程中的简化选择语句:
SELECT
P.[ProductId]
,P.[ProductName]
,I.[FileName] as ProductImage
FROM [Product] P
LEFT JOIN [ProductImages] I
on P.ProductId = I.ProductId
Where P.ProductId = @ProductId
这将返回如下所示的数据:
ProductId ProductName ProductImage
1 Coffee Mug Mug_Image1.jpg
1 Coffee Mug Mug_2.jpg
1 Coffee Mug Mug_Img3.jpg
我希望它看起来像这样(但我也想听听其他想法):
ProductId ProductName ProductImage
1 Coffee Mug Mug_Image1.jpg, Mug_2.jpg, Mug_Img3.jpg
同样,我不确定这是否是最好的方法。
我有两张桌子。一个是 Product,另一个是 ProductImages,它具有 Product 表中 ProductId 的 FK。
最终,我需要构建 JSON 来提供客户端幻灯片脚本。像这样:
productimages = [
{ "image": "Mug_Image1.jpg", "caption": "", "link": "", "title": "" },
{ "image": "Mug_2.jpg", "caption": "", "link": "", "title": "" },
{ "image": "Mug_Img3.jpg", "caption": "", "link": "", "title": "" }
];
这里是 C#
//Create product object to display on page
ProductEntity product = new ProductEntity();
product.Id = idval;
//Load the product from SP based on ID
ProductWF.LoadProduct(product);
//Render product details on page
ProductNameLabel.Text = product.ProductName;
//Construct JSON image list
StringBuilder sb = new StringBuilder();
etc...