我正在嘗試編寫一個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