1

私のデータベースでは、列を持つテーブルを作成しました

ProductId                int            Unchecked
[Sports Name]            nvarchar(50)   Checked
Category                 nvarchar(50)   Checked
Brand                    nvarchar(50)   Checked
Image                    text           Checked
MRP                      varchar(50)    Checked
[Our Price]              varchar(50)    Checked
[You Save]               varchar(50)    Checked
[Shipping Charges]       varchar(50)    Checked
[Expected Delivery]      varchar(50)    Checked

前面には、バドミントン、テニス、卓球などの多くのリンクボタンを作成しました。また、バドミントンのラケットとシャトル、クリケットのバットとボールなど、必要な機器を選択するドロップダウンリストを作成しました。ブランドを選択するドロップダウンリスト。

今、私は、クリックと選択イベントで顧客が選択した製品を、カテゴリごとにページを作成するのではなく、1 つのページにのみ表示するようにしたいと考えています。

if(badminton.click==true)
{
  cmd.text= seclect * from products where [Sports Name == Badminton] And Category==setectedcategory and so on 
} 
else if(tennis.click==true
{
}
...........so on

または同じように1つのステートメントでのみ

cmd.text= select * from products where [Sports Name]==LinkButton.click And all like this

私が何を望んでいるのか理解できたら、助けてください。

4

1 に答える 1

0

あなたのデータベースにはいくつかの問題があります、私は指摘しなければなりません:

例えば:

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、挿入元で、スポーツ、カテゴリ、およびブランドのリストをDropDownListsとして表示する必要があります。ただし、このドロップダウンリストには、エンティティの名前のみが表示されます。CategoryName[カテゴリ]ドロップダウン、BrandName[ブランド]ドロップダウンなどにのみ表示されます。また、ドロップダウンリストの次の2つのプロパティを使用してこれを行うことができます。

何かのようなもの:

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>して、クエリで選択した列名にバインドします。これをグーグルで検索すると、これを行う方法を説明するスレッドがたくさん見つかります。例えば ​​:

これがあなたが探しているものであることを願っています。


  • 1:場合によっては、使用すべきではないかもしれません。

  • 2:では、主キーとしてSportsEquipmentsを使用しIdました。これにより、多くのスポーツであらゆる機器を参照できます。各スポーツに固有の機器を作成したい場合は、(SportId, EquipmentId)代わりに複合キーを作成してください。

于 2012-11-24T08:41:40.280 に答える