从SQL中获取两个数据字段到下拉列表的文本中
本文关键字:字段 数据 文本 两个 下拉列表 获取 SQL | 更新日期: 2023-09-27 18:01:26
我正试图使它,以便我可以从SQL Server到drop down list
的Text Field
的两段数据。如果我得到AccountID='1','2'
和CompanyName='Build it inc','It ltd'
的数据。我想让它显示:
1-Build it inc
它有限公司
我可以从sql中获得数据,并获得DataValueField
到AccountID
,但我如何显示它。这是我的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用户有所帮助:)
根据您的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()这样的方法。如果您必须在另一个页面中获取这些相同的记录,那么您最终将重复代码,这是一种糟糕的做法。我建议您考虑设置类文件来处理这样的选择语句,以及您可能需要的其他字段和方法。