从SQL中获取两个数据字段到下拉列表的文本中

本文关键字:字段 数据 文本 两个 下拉列表 获取 SQL | 更新日期: 2023-09-27 18:01:26

我正试图使它,以便我可以从SQL Server到drop down listText Field的两段数据。如果我得到AccountID='1','2'CompanyName='Build it inc','It ltd'的数据。我想让它显示:

1-Build it inc

它有限公司

我可以从sql中获得数据,并获得DataValueFieldAccountID,但我如何显示它。这是我的aspx。

<asp:DropDownList ID="DDLTemplates" DataValueField="AccountID" 
   DataTextField='<%#Eval("AccountID") + "-" + Eval("CompanyName")%>' 
   runat="server"></asp:DropDownList>

我该怎么做?

编辑:既然很多人都在问,这里是我的代码后面。谢谢你的帮助
    protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DDLTemplates.DataSource = GetItems();
        DDLTemplates.DataBind();
    }
}
public DataSet GetItems()
{
    String conn = ConfigurationManager.ConnectionStrings["LiquidusConnectionString"].ConnectionString;
    SqlConnection sqlConnection2 = new SqlConnection(conn);
    string oString = "Select AccountID, CompanyName from Account";
    SqlCommand cmd = new SqlCommand(oString);
    cmd.Connection = sqlConnection2;
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    sqlConnection2.Open();
    da.Fill(ds);
    sqlConnection2.Close();
    return ds;
}

答案编辑:psoshmo和ragerory已经找到了我问题的答案。下面是我的代码,现在它可以工作了:

<asp:DropDownList ID="DDLTemplates" DataValueField="AccountID" DataTextField="Company" runat="server"></asp:DropDownList>

背后的代码:

    protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DDLTemplates.DataSource = GetItems();
        DDLTemplates.DataBind();
    }
}
public DataSet GetItems()
{
    String conn = ConfigurationManager.ConnectionStrings["LiquidusConnectionString"].ConnectionString;
    SqlConnection sqlConnection2 = new SqlConnection(conn);
    string oString = "SELECT AccountID, (Convert(varchar,AccountId) + ' - ' + CompanyName) as company FROM Account";
    SqlCommand cmd = new SqlCommand(oString);
    cmd.Connection = sqlConnection2;
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    sqlConnection2.Open();
    da.Fill(ds);
    sqlConnection2.Close();
    return ds;
}

希望这对未来的google用户有所帮助:)

从SQL中获取两个数据字段到下拉列表的文本中

根据您的GetItems方法,您可以更改oString变量…

string oString = "SELECT AccountID, (Convert(varchar,AccountId) + ' - ' + CompanyName) as Company FROM Account";

然后将控件更改为以下

<asp:DropDownList ID="DDLTemplates" DataValueField="AccountID" DataTextField="Company" runat="server"></asp:DropDownList>

你连接了两个字段,并使它们成为一个列,称为Company,所以这就是你应该拥有的TextField。

只需在类中创建一个字段,将这些字段加在一起,并将其绑定到DataTextField

类似:

public string YourFieldNameHere
{
  get { return String.Format("{0} - {1}", AccountID, CompanyName); }
}

编辑:我很抱歉假设你有一个类文件设置。一般来说,你应该避免在你的网页代码中使用像GetItems()这样的方法。如果您必须在另一个页面中获取这些相同的记录,那么您最终将重复代码,这是一种糟糕的做法。我建议您考虑设置类文件来处理这样的选择语句,以及您可能需要的其他字段和方法。