我正在尝试编写一个Web应用程序来收集用户数以用于审计目的。我有一个可以运行的Oracle查询(我在SQL Developer中运行它),但是我正在尝试通过web为超级用户提供此报告来取代他们自己的计数而不依赖于我。我无法在gridview中显示数据。将数据绑定到Gridview固定行,可变列
Oracle查询(用户的硬编码固定金额):
select * from (
select ad.display_name, ev.creator from auditdefinition ad, event ev
where ad.event_class_id = ev.object_class_id and ev.create_date >= to_date('01-OCT-2014','dd-MON-yyyy') and ev.create_date < to_date('01-DEC-2014','dd-MON-yyyy')
)
pivot
(
count(creator)
for creator in ('user1','user2','user3','user4')
)
order by display_name;
结果显示是这样的:
------------------------------------------
| | user1 | user2 | user3 | user4 |
------------------------------------------
| Create | 5 | 2 | 8 | 15 |
------------------------------------------
| Delete | 9 | 6 | 10 | 1 |
------------------------------------------
| View | 123 | 461 | 84 | 89 |
------------------------------------------
***note: Create, Delete, View are from "display_name" from the query
我知道该怎么做时,“列”是固定的(我用另一个查询做了另一个表),但是因为我不知道会有多少“userX”,所以我不知道如何在Web中动态构建它并将其显示在网格中。为GridView控件
ASPX代码:
<asp:GridView AutoGenerateColumns="False" CellPadding="2" CellSpacing="2" GridLines="none" HorizontalAlign="Left" ID="GridView2" runat="server">
</asp:GridView>
aspx.cs后台代码:
DataSet ds = new DataSet();
DataTable dt = ds.Tables.Add("Amount");
//I would normally add my columns here if they were fixed but because it it dynamic, I am not sure
...
GridView2.DataSource = dt; //beginning to bind my DataTable
GridView2.DataBind();
是否有一个原因你不能设置'AutoGenerateColumns =“True”'? – entropic 2014-11-21 23:42:37
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2014-11-21 23:48:22
Dang,菜鸟错误...我甚至没有注意到AutoGenerateColumns属性。我已经从我的第一个具有固定列数的GridView复制了我的GridView,但没有注意到它。谢谢你的提示! – Jayarikahs 2014-11-23 03:01:55