我的数据库里某个表的某个字段是用数字(smallint)存储的,用这些数字代替某些状态,如0代表小学,1代表中学,2代表高中,3代表大学,通过gridview与数据源绑定显示数据库内容,如何在显示时不是显示数字而是它代表的内容?我只知道含2个状态(0,1)的解决办法,但不知道含多状态的解决办法大家帮想一下~~谢谢~~
附:
只含(0,1)的解决办法: <%#( Convert.ToInt32(DataBinder.Eval(Container, "DataItem.文理科"))==0)?"文":"理"%> 

解决方案 »

  1.   

    方法1:SQLSELECT *, CASE WHEN 年级 = 0 THEN '小学'  when 年级=1 then '初中' when 年级=2 then '高中' when 年级=3 then '大学'
    FROM Table1
    方法2:C#
    string GetLevel(object levelid)
    {
       swicth(levelid.ToString())
       {
        case "0":
         return "小学";
        case "1":
         return "中学";
        case "2":
         return "高中";
        case "3":
         return "大学";    
    }<%#GetLevel(Eval("年级")%>
      

  2.   

    用Swirch/Case 吧.或者嵌套 ?: string L = (g == 0) ? "小学" : ((g == 1) ? "中学" : ((g == 2) ? "高中" : "大学"));
      

  3.   

    SELECT *, 
    CASE WHEN 年级 = 0 THEN '小学'  when 年级=1 then '初中' when 年级=2 then '高中' when 年级=3 then '大学'
    FROM Table1
    或写个小方法,
      

  4.   

    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    if (ds.Tables[0].Rows[i]["sno"].ToString() =="0")
                    {
                        ds.Tables[0].Rows[i]["sno"] = "xiaoxue";
                    }
                    if()
                      {
                。
                    }
                        
                    }