【问题标题】:Asp.Net SqlDataSource bind two columns together into one column in ASPXAsp.Net SqlDataSource 将两列绑定到 ASPX 中的一列
【发布时间】:2017-02-13 08:03:36
【问题描述】:

我有一个<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 查询并创建自己的列,而不是在我将字段连接在一起时用过。

我正在为我自己的问题添加一个答案,因为我相信这对其他想要同样结果的人会很有帮助。

【问题讨论】:

    标签: sql asp.net connection-string sqldatasource selectcommand


    【解决方案1】:

    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">
    

    【讨论】:

    • 如果这对您有帮助,请不要忘记标记为答案。谢谢
    • 这只是我下面的一个简短版本..谢谢。
    【解决方案2】:

    事实证明,我所做的非常简单,可以实现 1 列同时创建 2 列或更多列。

    我的SqlDataSource如下:

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

    现在,当将其用作下拉列表或网格视图中的列时,您可以简单地调用我们创建的新列。

    下拉列表示例:

    <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. 汉娜·蒙塔娜

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多