SQL 用户类型问题

本文关键字:问题 类型 用户 SQL | 更新日期: 2023-09-27 18:36:50

我使用了一个SQL query来定义表中用户的角色。例如:-

1 -- 超级管理员

2 -- 管理员

3 -- 用户

在网格视图中,我想将文本显示为Super AdminAdmins但我仍然得到012

请帮忙

法典:-

SELECT (
        CASE WHEN usertype =1 THEN 'Admin' 
              WHEN usertype=0 THEN 'Super Admin' 
              WHEN usertype=2 THEN 'User' END ) aS usertype 
FROM tbl_User

网格视图 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>

SQL 用户类型问题

在网格事件RowDatabound下,你必须处理这个,或者 你的SQL查询将返回角色描述和角色ID,然后将其绑定到网格上

对于行数据绑定事件:-

protected void ctrlGrid_ItemDataBound(object sender, GridItemEventArgs e)
  {
     //add three case like this
    if (dataBoundItem["usertype"].Text == "1")
     Label lblUserType = (dataBoundItem["UserType"].FindControl("lblUserType") as Label);
     lblUserType.Text = "Admin";
 }

编辑:-

根据您的sql查询,我必须说更改您的别名并添加单引号

SELECT Id,username,email,usertype,active, 
CASE WHEN usertype ='1' THEN 'Admin' 
WHEN usertype='0' THEN 'Super Admin' 
WHEN usertype='2' THEN 'User' END ) AS usertypeDescription 
from tbl_User ORDER By Id DESC

然后更改

 <asp:BoundField DataField="usertypeDescription" HeaderText="UserType" 
                       ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td">
    <HeaderStyle CssClass="k-grid td"></HeaderStyle>
       <ItemStyle Width="30px"></ItemStyle>
 </asp:BoundField>