2013-09-24 1 views
3

JOIN을 사용하는 gridview가 있습니다. 다른 표의 두 열은 같은 이름입니다.Gridview에 같은 이름의 두 개의 열 표시

<asp:GridView ID="viewThemeTypeAssociationsGridView" runat="server" AutoGenerateColumns="False" 
    BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" 
    DataKeyNames="PK_User" CellPadding="3" CellSpacing="2" DataSourceID="SqlDataSource6" 
    OnRowDataBound="viewThemeTypeAssociationsGridView_OnRowDataBound"> 
    <Columns> 
      <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> 
      <asp:BoundField DataField="Name" HeaderText="Organization Team" SortExpression="Name" /> 
    </Columns> 
    </asp:GridView> 
    <asp:SqlDataSource ID="SqlDataSource6" runat="server" ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" 
              SelectCommand=" 
              SELECT [User].[PK_User] 
               ,[User].[Name] 
               ,[OrganizationalTeam].[Name] 
              FROM [User] 
              LEFT JOIN [OrganizationalTeam] ON [OrganizationalTeam].[PK_OrganizationalTeam] = [User].[OrganizationalTeamId] 
              WHERE COALESCE(cast([OrganizationalTeam].[InternalExternal] as varchar(255)), 'null') LIKE @internalExternalParam 
              GROUP BY [User].[Name] 
               ,[OrganizationalTeam].[Name] 
               ,[User].[PK_User] 
              "> 
    <SelectParameters> 
      <asp:QueryStringParameter Name="internalExternalParam" DefaultValue="%" Type="String" /> 
    </SelectParameters> 

표시하는 데 문제가 있습니다. 다음과 같이이 이루어집니다 내가 생각할 겁니다 방법은 다음과 같습니다이 다음과 같은 오류를 일으키는

<asp:BoundField DataField="[OrganizationalTeam].[Name]" HeaderText=" Team Name" SortExpression="[OrganizationalTeam].[Name]" /> 
<asp:BoundField DataField="[User].[Name]" HeaderText="Team" SortExpression="[User].[Name]" /> 

:

사용자가 DataColumn에 나 테이블 기본보기위한하여 DataRelation도 아니다.

같은 이름의 다른 테이블에서 두 개의 열을 어떻게 표시합니까?

답변

5

문제는 열이 실제로 Name 것을 모두를 위해, 나의 제안은 각 테이블에서 데이터를 구분하는 그들에 별칭을 사용하는 것입니다 :

SELECT [User].[PK_User] 
    ,[User].[Name] as UserName 
    ,[OrganizationalTeam].[Name] as OrganizationalTeamName 
FROM [User] 
LEFT JOIN [OrganizationalTeam] ON [OrganizationalTeam].[PK_OrganizationalTeam] = [User].[OrganizationalTeamId] 
WHERE COALESCE(cast([OrganizationalTeam].[InternalExternal] as varchar(255)), 'null') LIKE @internalExternalParam 
GROUP BY [User].[Name] 
    ,[OrganizationalTeam].[Name]