0

次のようなグリッドビューのデータが必要です。

CategoryName    Subcategory Name
--------------------------------
Abc             Abc1,abc2,abc3
Bcs             Bcs1,bcs2
def             Null / No Record

どうやってやるの?

さて、私は単一のテーブルを使用してデータベースからデータが欲しいです。categryid、parentid、nameなどのフィールドを持つテーブルカテゴリが1つあります。parentidが0の場合、Categoriesで認識されます。それ以外の場合、他のすべてはsubCategoriesです。

私はc#でasp.netを使用していますが、boundfieldを使用してgridviewでこれを実行したいと思います。私が行ったカテゴリについては、サブカテゴリについてはどうすればよいかわかりません。

サブカテゴリは、その親IDによって識別されます。サブカテゴリでparentid=categoryid

4

1 に答える 1

0

テーブル内のデータが次のようになっていると仮定します

CategoryId | ParentID | 名前| 1 | 0 | A |、2 | 1 | B |、3 | 0 | C |、4 | 3 | D |

あなたは次のようなことをすることができます

Create Table #ReportTable(Id identity int,CategoryId int,Category varchar(10),SubCategory Varchar(10))

Declare @CountOfRecords int = Select count(categoryid) from categories

Declare @TableIterator int = 1

While  @TableIterator <= @CountOfRecords
Begin

       Declare @ParentId int = (Select ParentId From Categories Where CategoryId=@TableIterator)   

       If @ParentId = 0
       Begin
             Insert Into #ReportTable(CategoryId,Category)
             Select CategoryId,Category  
             From Categories
             Where  CategoryId = @TableIterator
       End  
       Else
       Begin
             Update #ReportTable
             Set    SubCategory = 
             (Select SubCategory From Categories Where  CategoryId = @TableIterator)
             And Id = @ParentId   
       End

        Set @TableIterator = @TableIterator + 1
End
于 2013-01-29T14:07:04.920 に答える