如何将多个列值读取到数组列表中? 我正在尝试将类别名称和类别ID的列表从数据库读取到数组列表中;然后,我将这些值绑定到下拉列表中。 使用我当前的代码,我只能使用一列,但想同时拉cat_name和cat_id那么我该怎么做呢?
<asp:DropDownList ID="DropDownList1" runat="server" DataTextField="ct_name" DataValueField="ct_id" AppendDataBoundItems="true">
<asp:ListItem Value="-1">Select</asp:ListItem>
</asp:DropDownList>
这是隐藏的代码
private ArrayList GetDummyData()
{
ArrayList arr = new ArrayList();
string strConn = ConfigurationManager.ConnectionStrings["myCon"].ConnectionString.ToString();
SqlConnection con = new SqlConnection(strConn);
con.Open();
SqlCommand cmd = new SqlCommand("select distinct ct_name, cat_id from [myTable].[dbo].[categories]", con);
SqlDataReader objDR = cmd.ExecuteReader();
if (objDR != null) {
while (objDR.Read())
{
//fill arraylist
arr.Add(objDR["ct_name"]);
}
}
con.Close();
return arr;
}
private void FillDropDownList(DropDownList ddl)
{
ArrayList arr = GetDummyData();
foreach (string item in arr)
{
ddl.Items.Add(item);
}
}
使用"多维数组"的最佳方法是通常不使用一个数组,而是使用强类型数据:
class Category
{
public string Name {get;set;}
public string Id {get;set;}
}
List<Category> categories = new List<Category>();
while (objDR.Read())
{
categories.Add(new Category {
Name = objDR["ct_name"],
Id = objDR["ct_id"],
};
}
如果您尝试将下拉列表中的两个项目并排放置,那么您可以使用
选择连接(cat_id",",ct_name)...