Asp.Net SqlDataSource связывает два столбца в один столбец в ASPX

У меня есть <asp:SqlDataSource подключен к базе данных с помощью строки подключения, однако я хотел объединить 2 столбца, чтобы создать 1 столбец, например:

Column: First Name
Column: Last Name

Создает:

Column: Full Name

Мне было трудно найти, как это сделать в aspx, но действительно легко найти это, чтобы сделать это на странице напрямую.

Мой источник данных Sql был следующим:

<asp:SqlDataSource ID="databaseWork" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString%>" SelectCommand="SELECT  [FirstName],[LastName] FROM [People]">
    </asp:SqlDataSource>

Я хотел, чтобы они были в выпадающем списке. Мой выпадающий список был:

<asp:DropDownList ID="ddlPeople" runat="server" AutoPostBack="True" DataSourceID="databaseWork" DataTextField= 'FirstName' DataValueField="ID">
</asp:DropDownList>

Независимо от того, что я делал, казалось, ничего не получалось, я ходил на несколько сайтов и пробовал много вещей, однако сам понял, что могу просто изменить SQL-запрос и создать собственный столбец вместо объединения полей вместе, когда я их использую.

Я добавляю ответ на свой вопрос, так как считаю, что он будет очень полезен для тех, кто хочет того же результата.

2 ответа

Решение

То, что я сделал, оказалось очень простым, чтобы получить 1 столбец, в котором было создано 2 или более столбцов.

Мой SqlDataSource выглядит следующим образом:

<asp:SqlDataSource ID="databaseWork" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString%>" SelectCommand="SELECT [FirstName] + ' ' + [LastName], AS [FullName] FROM [People]">
</asp:SqlDataSource>

Теперь при использовании его в качестве столбца в списках DropDown или в виде сетки вы можете просто вызвать новый созданный нами столбец.

Пример выпадающего списка:

<asp:DropDownList ID="ddlPeople" runat="server" AutoPostBack="True" DataSourceID="databaseWork" DataTextField= 'FullName' DataValueField="ID">

Пример таблицы с колонкой:

<asp:GridView
  ID="gridPeople"
  runat="server"
  DataSourceID="databaseWork"
  AllowPaging="True" 
  AllowSorting="True" 
  AutoGenerateColumns="False" PageSize="50">

    <Columns> 
        <asp:BoundField DataField="FullName" HeaderText="Full Name Column"  SortExpression="FullName" />

    </Columns>

</asp:GridView>

Вместо того, чтобы пытаться добавить два столбца для создания одного в раскрывающемся списке или в виде сетки на лету, гораздо удобнее и проще создать столбец в самом SQL-запросе и просто вызывать его. Теперь, когда мы называем FULL Name, мы получаем результат вот так:

  1. Джон Смит
  2. Ханна Монтанна

Надеюсь, это поможет вам, так как я застрял на этом и смог найти правильный ответ о том, как решить эту проблему на веб-странице напрямую, а не на стороне сервера.

SqlDataSource

<asp:SqlDataSource ID="databaseWork" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString%>" SelectCommand="SELECT [ID], [FirstName] + ' '+[LastName] AS [FullName] FROM [People]">
</asp:SqlDataSource>

Примечание запрос "SELECT [ID], [FirstName]+' '+[LastName] AS [FullName] FROM [People]"

Для выпадающего

<asp:DropDownList ID="ddlPeople" runat="server" AutoPostBack="True" DataSourceID="databaseWork" DataTextField= 'FullName' DataValueField="ID">
Другие вопросы по тегам