构建具有可变列数的gridview

本文关键字:gridview 构建 | 更新日期: 2023-09-27 17:54:42

我有一个sql表中的数据,看起来像这样:

Name    colno    remark
----    -----    ------
bill    col 1    good
bill    col 2    ok
bill    col 3    triff
bill    col 4    A1
bob     col 1    poor
bob     col 2    excellent
bob     col 3    ok
bob     col 4    B+
bert    col 1    
bert    col 2    no info
bert    col 3    pass
bert    col 4    C-

和我想要一个gridview(?)与数据绑定,布局像这样:

Name     col 1    col 2      col 3    col 4
Bill     good      ok        triff     A1
Bob      poor     excellent  ok        B+
bert              no info    pass      C-

所以我可以根据需要编辑/插入数据。

杀手是列的数量可以变化,例如我在上面的第一个例子中是4,但它可以是10到15之间的任何数字。因此,在第二次提取时,数据可能如下所示:

Name    colno    remark
----    -----    ------
brenda  col 1    ok
brenda  col 2    ok
brenda  col 3    excellent
boris   col 1    poor
boris   col 2    ok
boris   col 3    ok
baz     col 1    great
baz     col 2    no info
baz     col 3    ok

给出这样一个表:

Name     col 1    col 2      col 3
brenda   ok        ok        excellent
boris    poor      ok          ok
baz      great    no info      ok

我已经探索了sql pivot,但我不想以任何方式汇总数据,它只是每个记录的单个文本字段。所以我不认为这种查询会工作:

select * from myData
pivot (someAggregateFunctionThatIDontNeed(colNo) for colNo_ButNotBeingAggregated in (variableNoOfColumns)) as notAnAvergageJustText

我试图从多个sql-extract -into- DataTable -then-loop(这是有效的,有点,但我不知道如何绑定数据后)构建一个数据表碎片

任何想法?我已经做了四天了,我被难住了。

构建具有可变列数的gridview

你需要一个枢轴。查找"pivot"MSDN的SQL,或谷歌它。要准备花一点时间来理解它,因为语法并不简单。

您是否尝试过在SQL语句中使用ISNULL来检查没有数据的列?如果没有数据,可以在语句本身中设置默认值。

ISNULL([YOUR FIELD],'Whatever you want to display here')