如何在以下方案中从SQL获取不同的数据?

时间:2015-07-06 06:11:34

标签: c# sql .net sql-server sql-server-2008

我有一个表Menu具有递归的一对多关系。 该表包含菜单及其子菜单。

当我执行查询时,我得到了结果:

->Form.....Activity
->Form.....Report
->Review..Activity
->Review..Report

但我希望将此信息存储在C#集合(列表/字典)中,格式如下。

->Form
  Activity
  Report
->Review
  Activity
  Report

注意:我在C#中使用SQL-Data-Reader从SQL Server 2008中检索信息 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

由于没有代码我会用文字解释我的答案。

您可以使用字典或散列表来使用C#存储数据。

使用词典:

声明一个将存储键和值列表的字典,即

Dictionary<string, List<string>>  dicData = new Dictionary<string, List<string>> ();

然后,当您查询返回数据时,您可以执行以下操作。假设您从DataTable中读取数据。

 Foreach(DataRow row in yourDataTable.Rows)
 {
      if(dicData.ContainsKey(row["firstColumn"]))
      {
         dicData[row["firstColumn"].ToString()].Add(row["secondColumn"].ToString());
      }
      else
      {
         List<string> list = new List<string>();
         list.Add(row["secondColumn"].ToString())

         dicData.Add(row["firstColumn"].ToString(), list)
      }
 }

NB:代码未经过测试,但可以让您了解需要执行的操作。希望它有所帮助