【发布时间】:2016-06-21 16:19:18
【问题描述】:
我有一个电子商务网站,一个 ID 可以有多个产品订单。截至目前,我有这个:
如您所见,它在我的桌子上显示了冗余。我想要这样的输出:
Carbon Dixode, Industrial Oxygen
因为它们在同一个 ID (10) 上。也一样
Compressed Air, Kerosene, Medical Oxygen
这是我的代码:
private void GetOrderList()
{
ShoppingCart k = new ShoppingCart()
{
Flag = 0
};
DataTable dt = k.GetOrderList();
gvCustomerOrders.DataSource = dt;
gvCustomerOrders.DataBind();
gvCustomerOrders.HeaderRow.TableSection = TableRowSection.TableHeader;
}
这是 GetOrderList()
internal DataTable GetOrderList()
{
SqlParameter[] parameters = new SqlParameter[1];
parameters[0] = DataLayer.DataAccess.AddParameter("@Flag", Flag, System.Data.SqlDbType.Int, 20);
DataTable dt = DataLayer.DataAccess.ExecuteDTByProcedure("SP_GetOrderList2", parameters);
return dt;
}
这里是存储过程:
ALTER procedure [dbo].[SP_GetOrderList2]
(
@Flag int
)
AS
BEGIN
BEGIN TRY
if(@Flag <>0)
Begin
Select *
FROM CustomerDetails where Id=@Flag;
End
else
begin
select p.[name],cd.Id, cd.CustomerName, cd.CustomerEmailID,cd.CustomerPhoneNo,cd.CustomerAddress,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod FROM CustomerDetails cd Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id Inner Join Products p ON cp.ProductID = p.ProductID
end
END TRY
BEGIN CATCH
PRINT('Error Occured')
END CATCH
END
我在这里真正想要的是避免我的桌子上的冗余。我希望同一 ID 上的产品保持在一起,因为我的价格已经合并。任何帮助将不胜感激。
【问题讨论】:
-
您应该规范化您的数据库以删除那些冗余。
-
先生@WilliamXifaras 谢谢你
标签: asp.net sql-server stored-procedures