从SQL获取两个DataField到下拉列表的文本中

时间:2015-07-06 16:34:44

标签: c# asp.net

我正在尝试将其从SQL Server中获取两个数据到Text Field的{​​{1}}。因此,如果我获得数据drop down listAccountID='1','2'。我想要它显示:

1-Build it inc

2-It ltd

我可以从sql获取数据并获取CompanyName='Build it inc','It ltd'DataValueField但是如何显示它。这是我的aspx。

AccountID

我该怎么做?

编辑:因为很多人在这里问我的代码背后。感谢所有帮助

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

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

    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;
}

代码背后:

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

希望这有助于未来的Google员工:)

2 个答案:

答案 0 :(得分:1)

根据您的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。

答案 1 :(得分:0)

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

类似的东西:

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

}
编辑:假设你有一个类文件设置我不好。通常,您应该避免在网页代码中使用类似GetItems()的方法。如果你必须在另一个页面中获得相同的记录,你最终会复制你的代码,这是不好的做法。我建议你考虑设置类文件来处理这样的select语句,以及你可能需要的其他字段和方法。