也就是一个类似于在SQL Server 2000里使用SQL语句"Case"关键字那样的情况
比如Case Column1 WHEN 0 THEN 'XXX' WHEN 1 THEN 'YYYY'
类似于这样的一种功能。
我在一个字段里存储了各种数字,事先约定好各种数字代表什么,然后通过Case关键字在数据表格中呈现给用户。
比如0 代表 XXX
1 代表 YYY
2 代表 ZZZ
数据库里是0、1、2,但呈现给用户的时候应该是XXX、YYY、ZZZ在SQL Server 2000数据库里可以用SQL语句来实现,但是在脱机之后的DataSet里怎么实现这样的功能呢?

解决方案 »

  1.   

    DataSet ds = new DataSet()
    string tmp = String.Empty;
    for(int i=0;i<ds.Tables[0].Row.Count;i++)
    {
      switch(ds.Table[0].Row[i]["columnName"].ToString())
     {
      case "1":
        emp = "YYY";
       break;
     }
    }
    Response.Write(tmp);
      

  2.   

    不用sql语句楼上的就可以了...
      

  3.   

    楼上的很正确
    不过我还是认为写在sql里比较好
      

  4.   

    改变列的数据类型,改变列的值
    或在dataset中增加一列来根据你说的存放数字列的内容,存放你要显示的内容
    不过都得循环加
      

  5.   

    //我做过这个不过是ASP。net的。。在数据绑定控件显示数据前都会触发一些事件
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Configuration;namespace 易网科技.Admin.User
    {
    /// <summary>
    /// UserData 的摘要说明。
    /// </summary>
    public class UserData : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Repeater Repeater1;
    protected System.Web.UI.WebControls.DataList DataList1;
        protected DataOperation DataOP=new DataOperation();
    protected int Records;//记录数
    protected int TotalPage;//总页数
    protected int CurrentPage;//当前页
    protected int PageSize=Int32.Parse(ConfigurationSettings.AppSettings["PageSize"]);//每页记录数,此信息在Web.Config中
    protected DataSet ds;
    protected bool bPre,bNext;//是否启用
    protected string sPre,sNext;
    protected System.Web.UI.WebControls.Label Label1;
    //导航的URL
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!this.IsPostBack)
    {
    if(Request["Page"]==null)
    {
    CurrentPage=1;

    }
    else
    {
    try
    {
    CurrentPage=Convert.ToInt32(Request["Page"]); }
    catch
    {
    CurrentPage=1;
    }
    }

    if(CurrentPage>0)
    {
    sPre="UserData.aspx?Page="+Convert.ToString(CurrentPage-1);//上一页
    sNext="UserData.aspx?Page="+Convert.ToString(CurrentPage+1);//下一页
    if(CurrentPage==1)
    {
    bPre=false;

    }
    else
    {
    bPre=true;

    }
    ds=DataOP.GetUserData(CurrentPage,PageSize,out Records,out TotalPage);
    if(CurrentPage==TotalPage)
    {
    bNext=false;
    }
    else
    {
    bNext=true;
    }
    DataList1.DataSource=ds;
    DataList1.DataBind();
    }
    }
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.DataList1.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.DataList1_ItemDataBound_1);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion        //用以显示用性别,状态及权限
    private void DataList1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {  
    if(e.Item.ItemIndex>-1)
    {
    int qx,zt,xb;
    qx=Convert.ToInt32(ds.Tables["User"].Rows[e.Item.ItemIndex]["qx"]);
    zt=Convert.ToInt32(ds.Tables["User"].Rows[e.Item.ItemIndex]["zt"]);
    xb=Convert.ToInt32(ds.Tables["User"].Rows[e.Item.ItemIndex]["xb"]);
    Label Level=(Label)e.Item.FindControl("Label2");
    Label Status=(Label)e.Item.FindControl("Label3");
    Label Sex=(Label)e.Item.FindControl("Label4");
    if (qx==1)
    Level.Text="正常";
    else
    Level.Text="管理员";
    if(zt==1)
    Status.Text="正常";
    else
    Status.Text="已锁定";
    if(xb==1)
    Sex.Text="男";
    else
    Sex.Text="女";
    }

    }
    }
    }
      

  6.   

    不好意思,发多了
    private void DataList1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {  
    if(e.Item.ItemIndex>-1)
    {
    int qx,zt,xb;
    qx=Convert.ToInt32(ds.Tables["User"].Rows[e.Item.ItemIndex]["qx"]);
    zt=Convert.ToInt32(ds.Tables["User"].Rows[e.Item.ItemIndex]["zt"]);
    xb=Convert.ToInt32(ds.Tables["User"].Rows[e.Item.ItemIndex]["xb"]);
    Label Level=(Label)e.Item.FindControl("Label2");
    Label Status=(Label)e.Item.FindControl("Label3");
    Label Sex=(Label)e.Item.FindControl("Label4");
    if (qx==1)
    Level.Text="正常";
    else
    Level.Text="管理员";
    if(zt==1)
    Status.Text="正常";
    else
    Status.Text="已锁定";
    if(xb==1)
    Sex.Text="男";
    else
    Sex.Text="女";
    }

    }
    }
    }