C# GridView ASP/C的单元格/列中的映射值

C# GridView ASP/C的单元格/列中的映射值,c#,sql,asp.net,gridview,C#,Sql,Asp.net,Gridview,我在ASP/C中有一个GridView,里面充满了来自SQL数据源的数据。某些列包含一个ID整数,其中每个列都有不同的映射。我想显示映射值,而不是整数。例如,GridView中的第一列显示的1、2、3、4与DB中的显示完全相同。但是,我想根据映射将其显示为字符串: 1 = Cash 2 = Money Transfer 3 = Visa 4 = etc 如何在不涉及select语句中的大小写功能的情况下从C执行此操作?您是否有一个与当前正在检索的属性相对应的模型属性 例如,如果此属性称为Pay

我在ASP/C中有一个GridView,里面充满了来自SQL数据源的数据。某些列包含一个ID整数,其中每个列都有不同的映射。我想显示映射值,而不是整数。例如,GridView中的第一列显示的1、2、3、4与DB中的显示完全相同。但是,我想根据映射将其显示为字符串:

1 = Cash
2 = Money Transfer
3 = Visa
4 = etc

如何在不涉及select语句中的大小写功能的情况下从C执行此操作?

您是否有一个与当前正在检索的属性相对应的模型属性

例如,如果此属性称为PaymentOptionID,则应该有一个对应的字符串来保存PaymentOptionDescription。然后,当您从数据库返回记录集时,将gridview的列指定为string属性。示例如下:

模型

DB Select语句

控制器方法

看法


如果映射存储在数据库中,则可以在查询中使用内部联接来获取映射值

例如,如果您有一个Orders表,其中包含OrderID、ClientID、Price和PaymentTypeID字段:

包含ClientID和ClientName字段的Clients表:

以及PaymentType表,其中包含PaymentTypeID和Description字段:

然后查询可能如下所示:

SELECT
    O.*,
    C.ClientName,
    PT.Description AS PaymentDescription
FROM
    Orders O
    INNER JOIN Clients C ON C.ClientID = O.ClientID
    INNER JOIN PaymentType PT ON PT.PaymentTypeID = O.PaymentTypeID
gvOrders.DataKeys[rowIndex].Values["PaymentTypeID"]
在GridView中,可以显示Orders表中的一些字段,也可以显示查询返回的ClientName和PaymentDescription字段:

ClientName       Price    PaymentDescription
Miracle Mart     40.50         Visa
Woolworth       128.43         Cash
ID本身通常不会显示给用户。如果在代码隐藏中进行某些处理时需要它们的值,可以将它们添加到GridView的DataKeyName中:

<asp:GridView ID="gvOrders" DataKeyNames="OrderID,ClientID,PaymentTypeID" ... >

映射是否在数据库的表中?如果是这样,您可以在查询中使用'INNER JOIN',以获取与每个ID对应的字符串。是。对于大多数映射,我在不同的表中有它们的描述。我该怎么做呢。我不太熟悉sql高级查询。谢谢,谢谢。我在另一个表格中有描述。如果数据绑定在页面加载时完成,我将如何进行映射。
OrderID   ClientID  Price   PaymentTypeID
   3          8      40.50       3
   4          2     128.43       1
ClientID  ClientName
   2      Woolworth
   3      Dairy Queen
   6      Dominion Groceries
   8      Miracle Mart
PaymentTypeID  Description
     1         Cash
     2         Money transfer
     3         Visa
SELECT
    O.*,
    C.ClientName,
    PT.Description AS PaymentDescription
FROM
    Orders O
    INNER JOIN Clients C ON C.ClientID = O.ClientID
    INNER JOIN PaymentType PT ON PT.PaymentTypeID = O.PaymentTypeID
ClientName       Price    PaymentDescription
Miracle Mart     40.50         Visa
Woolworth       128.43         Cash
<asp:GridView ID="gvOrders" DataKeyNames="OrderID,ClientID,PaymentTypeID" ... >
gvOrders.DataKeys[rowIndex].Values["PaymentTypeID"]