【发布时间】:2015-03-07 22:11:24
【问题描述】:
我使用SQL query 来定义表中用户的角色。例如:-
1 -- 超级管理员
2 -- 管理员
3 -- 用户
在gridview中,我想将文本显示为Super Admin,Admins,但我仍然得到0,1和2。
请帮忙
代码:-
SELECT (
CASE WHEN usertype =1 THEN 'Admin'
WHEN usertype=0 THEN 'Super Admin'
WHEN usertype=2 THEN 'User' END ) aS usertype
FROM tbl_User
Gridview aspx 代码:-
<asp:GridView ID="grdUser" AllowPaging="true" AutoGenerateColumns="False"
OnDataBound="grdUser_DataBound" OnRowDeleting="grdUser_RowDeleting"
OnPreRender="PreRenderGrid" runat="server" Width="100%"
border="1" DataKeyNames="Id" PageSize="2"
OnPageIndexChanging="grdUser_PageIndexChanging"
EnableSortingAndPagingCallbacks="false"
CssClass="pagi" OnRowCommand="grdUser_RowCommand">
<Columns>
<asp:BoundField DataField="username" HeaderText="UserName"
ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td">
<HeaderStyle CssClass="k-grid td"></HeaderStyle>
<ItemStyle Width="30px"></ItemStyle>
</asp:BoundField>
<asp:BoundField DataField="usertype" HeaderText="UserType"
ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td">
<HeaderStyle CssClass="k-grid td"></HeaderStyle>
<ItemStyle Width="30px"></ItemStyle>
</asp:BoundField>
</Columns>
</asp:GridView>
【问题讨论】:
-
@Mihai:查看更新的问题
-
你的列中的数据是 int 还是其他?查询对我来说很好
-
@Mihai:我给的专栏是
varchar -
然后对数字使用引号,在mysql中可以工作,sql server更严格。
CASE WHEN usertype ='1'发生的情况是 sql server 找不到任何等于数字的东西并返回 NULLs.Assuming sql server.Or 更好的是将您的列更改为 int -
@Mihai:好吧,让我改变
标签: c# sql asp.net sql-server gridview