您的数据库存在一些问题,我必须指出:
不要在列名中使用空格,例如[Our Price]
, [Expected Delivery]
。可以,但建议不要这样做。您的标识符应符合常规标识符的默认规则。
对于货币或货币价值,使用1它有很多好处,甚至在某些情况下。不是你在桌子上做的那样。MONEY, SMALLMONEY
DECIMAL
NVARCHAR
Products
使用日期和时间数据类型,而不是NVARCHAR
像在[Expected Delivery]
. 还有最重要的一个:
您的数据库没有以这种方式标准化。Cateogries
您应该为和创建单独的Sports
表Brands
。
例如:
CREATE TABLE Equipments
(
EquipmentId INT NOT NULL IDENTITY(1, 1)
CONSTRAINT PK_EquipmentId PRIMARY KEY,
EquipmentName NVARCHAR(50) NOT NULL
);
CREATE TABLE Sports
(
SportId INT NOT NULL IDENTITY(1,1)
CONSTRAINT PK_SportId PRIMARY KEY,
SportName NVARCHAR(50)
);
CREATE TABLE SportsEquipments
(
Id INT NOT NULL IDENTITY(1, 1)<sup>2</sup>
CONSTRAINT PK_SportsEquipmentId PRIMARY KEY,
SportId INT NOT NULL
CONSTRAINT FK_SportId_Sports FOREIGN KEY
REFERENCES Sports(SportId),
EquipmentId INT NOT NULL
CONSTRAINT FK_EquipmentId_Equipments FOREIGN KEY
REFERENCES Equipments(EquipmentId)
);
CREATE TABLE Categories
(
CategoryId INT NOT NULL IDENTITY(1, 1)
CONSTRAINT PK_CategoryId PRIMARY KEY,
CategoryName NVARCHAR(50)
);
CREATE TABLE Brands
(
BrandId INT NOT NULL IDENTITY(1, 1)
CONSTRAINT PK_BrandId PRIMARY KEY,
BrandName NVARCHAR(50)
);
CREATE TABLE Products
(
ProductId INT NOT NULL IDENTITY(1, 1)
CONSTRAINT PK_ProductID PRIMARY KEY,
SportId INT NOT NULL
CONSTRAINT FK_SportId_Products
FOREIGN KEY REFERENCES Sports(SportId),
CategoryId INT NOT NULL
CONSTRAINT FK_CategoryId_Categories
FOREIGN KEY REFERENCES Categories(CategoryId),
BrandId INT NOT NULL
CONSTRAINT FK_BrandId_Brands
FOREIGN KEY REFERENCES Brands(BrandId),
"Image" TEXT,
MRP NVARCHAR(50),
OurPrice MONEY,
YouSave MONEY,
ShippingCharges MONEY,
ExpectedDeliveryDate DATETIME
);
我怎样才能以这种方式插入表格?
稍后插入Products
表格时,在insert from中,应该将运动、类别和品牌的列表显示为DropDownList
s。但是,在这个下拉列表中,您只显示实体的名称。您仅CategoryName
在类别下拉列表、BrandName
品牌下拉列表等中显示。您可以使用下拉列表的以下两个属性来执行此操作:
就像是:
dropdown.DataSource = dataset;
dropdown.DataValueField = "CategoryId";
dropdown.DataTextField = "CategoryName";
dropdown.DataBind();
//the same for other entities
然后你应该只从下拉列表中插入选定的 id,你的INSERT
语句看起来像:
INSERT INTO Products (SportId, CategoryId, BrandId, ... )
VALUES
(1, 2, 3, ...);
但是我该如何选择和搜索?
在搜索表单中也是如此,您应该将这些实体显示为下拉列表,然后搜索具有下拉列表选择的 id 的产品:
SELECT ProductId, Name, ...
FROM Products
Where CategoryId = @SelectedCategoryId
AND SportId = @selectedSportId
...
与您当前的问题相同,您可以从这些实体、类别列表和运动列表以及其他实体动态创建链接按钮。这可以使用GridView
控件完成,然后创建数据源并将其绑定到此网格视图。使用<ItemTemplate>
as<asp:LinkButton>
并将其绑定到查询选择的列名。如果你用谷歌搜索,你会发现很多线程解释了如何做到这一点。例如 :
希望这就是你要找的。