C# 使用Asp.net处理数据库中的值

C# 使用Asp.net处理数据库中的值,c#,asp.net,C#,Asp.net,在我的数据库中,我将水果表示为1表示苹果,2表示橙子,3表示梨,在数据库字段中表示为int 我的问题是,当我在页面上使用GridView输出时,它会显示“1,2,3”,所以当我希望它显示数字所代表的水果时 我想要的是,如果(水果==1)显示“苹果”等,它就会消失 我可以在.aspx页面中执行此操作吗?您可以在clas中创建一个getter属性,该属性将根据值决定要显示的内容。。可能是这样的: public string FruitName { get { switch(

在我的数据库中,我将水果表示为1表示苹果,2表示橙子,3表示梨,在数据库字段中表示为int

我的问题是,当我在页面上使用GridView输出时,它会显示“1,2,3”,所以当我希望它显示数字所代表的水果时

我想要的是,如果(水果==1)显示“苹果”等,它就会消失


我可以在.aspx页面中执行此操作吗?

您可以在clas中创建一个getter属性,该属性将根据值决定要显示的内容。。可能是这样的:

public string FruitName
{
   get
   {
       switch(someOtherField)
       {
           default:
           case 1:
             return "Apple";
           case 2:
             return "Orange";
           // ... 
       }
   }
}
然后,您可以使用此属性将其显示给用户


当然,如果您的问题只是数据库中的值与您希望向用户显示的值之间不匹配的一个示例,那么就是这样。如果不是这样,并且这是你的应用程序的一个实际示例,你肯定应该在数据库表设计、关系等方面投入更多的工作。

我建议你的数据库包含一个带有ID和Name列的水果表,你可以从数据库中获取值。

在表中放置一个带有水果名称的字段

Sql查询可能是这样的

Select fruit_name from fruits where id = (1 or 2 or 3)

在这种情况下,最好创建一个枚举类型,将数字分配给水果名称

enum Fruit
    {   
        Apple=1, // Assigned integer value = 1 to apple
        Guava=2,    
        Banana=3
    };

public Fruit FruitName
{
             get;   // Auto implemented prop. of type Enum
             set;  
}
通过这种方式,您可以将数据库整数值与水果名称进行比较

switch(value_from_database)
       {
           default:
           case 1:
             return Fruit.Apple;
           case 2:
             return Fruit.Guava;
           // ... so-on
       }

可以使用包含标签的TemplateField。步骤如下所示:

  • 添加与包含标签的水果相关联的模板字段。(例如lblFruit)
  • 关联GridView的OnRowDataBound事件
  • 按如下方式实施事件(C#):

    受保护的无效数据绑定(对象发送方,GridViewRowEventArgs e) {

    }

  • 要获取与行关联的当前记录,可以使用e.row.DataItem属性。
    一个很好的讨论显示

    该链接不起作用,我无法让您的示例起作用。如果它说DB中的值是我要放在eval(“水果场”)中的吗?链接是共享的,所以链接到一个答案,但无论如何,这里是:。来自数据库的值表示您需要从记录中获取此值。我不知道您是如何绑定网格视图的,但citron的回答提供了很好的示例,说明了如何绑定网格视图。我希望避免执行任何额外的数据库表或字段。
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        Label lblFruit = e.Row.FindControl("lblFruit") as Label;
        switch(value_from_database)
        {
           default:
           case 1:
             lblFruit.Text = "Apple";
           case 2:
             lblFruit.Text = "Orange";
           // ... 
        }
    }