如何使用 C# 的多维数组



如何将多个列值读取到数组列表中? 我正在尝试将类别名称和类别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)...

相关内容

  • 没有找到相关文章

最新更新