GridView:在单列中绑定数据库中的多个值

时间:2013-01-29 06:59:16

标签: asp.net sql-server

我想在gridview中使用这样的数据:

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

我该怎么做?

好吧我想通过使用单个表来从数据库中获取数据。我有一个表类别,其中我有类似Categryid,parentid,名称的字段。当parentid为0时,它的类别为其他所有其他是subCategories。

我正在使用带有c#的asp.net,我想在gridview中使用boundfield。对于我已经完成的类别,但对于子类别,我不知道该怎么做。

子类别由其parentid识别。在子类别中parentid = categryid

1 个答案:

答案 0 :(得分: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