C# 生成具有可变列号的gridview
sql表中的数据如下所示:C# 生成具有可变列号的gridview,c#,asp.net,sql,datatable,C#,Asp.net,Sql,Datatable,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
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-
Name col 1 col 2 col 3 col 4
Bill good ok triff A1
Bob poor excellent ok B+
bert no info pass C-
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
我想要一个带有数据绑定的gridview(?),布局如下:
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-
Name col 1 col 2 col 3 col 4
Bill good ok triff A1
Bob poor excellent ok B+
bert no info pass C-
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
因此,我可以根据需要编辑/插入数据
最要命的是列的数量可以变化,例如在上面的第一个例子中我有4个,但它可以是10到15之间的任何数字。因此,在第二次提取时,数据可能如下所示:
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-
Name col 1 col 2 col 3 col 4
Bill good ok triff A1
Bob poor excellent ok B+
bert no info pass C-
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
给一张这样的桌子:
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-
Name col 1 col 2 col 3 col 4
Bill good ok triff A1
Bob poor excellent ok B+
bert no info pass C-
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
我已经研究了SQLPivot,但我不想以任何方式总结数据,它只是每个记录的一个文本字段。所以我认为这种查询不起作用:
select * from myData
pivot (someAggregateFunctionThatIDontNeed(colNo) for colNo_ButNotBeingAggregated in (variableNoOfColumns)) as notAnAvergageJustText
我曾尝试将一个数据表从多个sql提取片段逐段构建到数据表中,然后循环(这是可行的,但我不知道如何在循环之后绑定数据)
有什么想法吗?我已经用藤条打了四天了,我被难住了。妻子来为你做周日晚餐的提议仍然有效……你需要一个支点。在“pivot”MSDN中查找SQL,或用谷歌搜索它。请准备花一点时间来解决这个问题,语法并不简单。您是否在SQL语句中尝试使用ISNULL来检查没有数据的列?如果没有数据,可以在语句本身中设置默认设置
ISNULL([YOUR FIELD],'Whatever you want to display here')
workingclassmedia,您能举例说明文件在不同的数据、布局等情况下的外观吗。。?听起来你需要做一些像控件中断之类的事情,然后如果你在第一次读取后找到键workitem4,你就知道你有列和数据了。。然后从那里读取/检查item1…item4跳过item1…item4这个词,然后保存数据。。这有意义吗。。?您还可以将该数据放入字符串[]中,并以这种方式对数据进行检查。。或者列表每个sql select的列数保持不变,但每次摘录都会有所不同-我将编辑上面的帖子以进行展开。让我重新表述一下这个问题,这个初始数据最初存储在哪里/来自哪里。。?数据库表或文件..?嗨,DJ,刚刚编辑了我的帖子,解释数据来自sql表,并添加了原始列标题-不确定这是否有帮助?嗨,Ian,我从pivot开始,但这似乎不是正确的方法,因为我不想对数据进行总结(它们是我仍然希望能够添加/编辑的单个注释)我还希望在最后绑定网格数据,这样我就可以更新原始表-或者我是否错误地使用了pivot?Ian,在上面的文章中添加了我的pivot示例-如果您认为可以让它工作,请告诉我…在这种情况下,绑定将很困难。您确实需要将每个“项”放入自己的实体中,并带有“name”、“value(comment)”和colNr,可能是一个临时表。然后使用select Distinct查找列数,在临时表上创建一个动态查询,并为单元格创建特定的update语句,将名称和colNr作为参数……然后将网格绑定到Resultchers Ian,这是我已经开始的路线,但它非常灵活。到目前为止,我无法对你的答案投赞成票(没有足够的代表Grrr),你知道为什么我的问题被否决了吗?我认为它是有用的,清晰的,显示了研究的努力等等。。。这一要求在教育中相当普遍——你设置了一个单元,该单元的标准数量将不同于另一个单元,但当你来标记它时,你只需要该单元的网格,左边是名称,顶部是该单元的标准。事实上,现在我已经考虑过了,当然,这是任何拥有可变列电子表格的人的常规要求,他们需要将其放入/移出数据库?不知道我仍然不知道为什么我的问题会被否决,但我们…嗨,伊利诺伊蒂姆-今晚我回来时会查一查,但这似乎是有道理的-在这个阶段,我只是想让网格自动构建,稍后我会担心绑定问题…illinoistim-这被证明是一场噩梦-见我下面对IanP的评论-我通过在电子表格中敲打数据(脆性),保存为CSV,导入到数据表中,解决了这个问题,然后在一个循环中循环以构建另一个DT,然后将该DT喷射到sql数据库中-意式混乱。一定有人用更巧妙的方式做了这件事……欢迎大家!就个人而言,如果您能够构建更好的SQL表,我会将该表分为至少两个不同的表。如果您无法做到这一点,我只会对每一列使用ISNULL sytax。这样,它就可以在你的桌子上空着。为了获得所需的结果,可能需要使用WHERE语句在表中循环。然后你可以把[Name]=“Brenda”的位置分割出来。