2010-05-27 26 views
0

我想实现这个标签云: http://thetagcloud.codeplex.com/Asp.net词典 - 与数据库替换硬编码值的值

...我需要与那些来替换下面的硬编码值我数据库?

<%= new TagCloud( new Dictionary<string, int> { 
         {"C#", 58}, 
         {"ASP.NET", 45}, 
         {"VB.NET", 36}, 
         {"AJAX", 24}, 
         {"LINQ", 13} 
        }, 
        new TagCloudGenerationRules 
        { 
         TagToolTipFormatString = "Tag weight: {0}", 
         TagUrlFormatString = "search.aspx?p=1&tag={0}" 
        }) %> 

我创建返回格式期望的字符串/ int或值的数据

SELECT Tag, COUNT(Tag) AS Counter 
FROM   dbo.CtagCloud 
GROUP BY Tag 
HAVING  (COUNT(Tag) > 3) 
ORDER BY Counter DESC 
+0

你可以发布你的数据访问代码? – Oded 2010-05-27 14:14:56

+0

我认为您需要修改您的查询,以便它返回与标签相关的标识(58,45,36,24,13)以及标签名称和计数。 – 2010-05-27 14:20:35

+0

嗨,我在下面添加了我的数据访问代码。 谢谢 – Melt 2010-05-27 19:22:55

回答

0

这里是我的数据访问代码

// SQL Select Command 
    SqlConnection conn = new SqlConnection(connectionString); 
    SqlCommand mySqlSelect = new SqlCommand("SELECT TOP (100) PERCENT Tag, COUNT(Tag) AS Counter FROM dbo.CtagCloud GROUP BY Tag HAVING (COUNT(Tag) > 3) ORDER BY Counter DESC", conn); 
    mySqlSelect.CommandType = CommandType.Text; 
    SqlDataAdapter mySqlAdapter = new SqlDataAdapter(mySqlSelect); 
    DataSet myDataSet = new DataSet(); 
    mySqlAdapter.Fill(myDataSet); 

    // create an instance for ArrayList 
    ArrayList myArrayList = new ArrayList(); 

    // foreach loop to read each DataRow of DataTable stored inside the DataSet 
    foreach (DataRow dRow in myDataSet.Tables[0].Rows) 
    { 
     // add DataRow object to ArrayList 
     myArrayList.Add(dRow); 
    } 
0

嗯,我有一个超级简要如下SQL字符串/关键看,只是看看示例代码。我怀疑你需要传递一个数组(值对)而不是一个字符串。

只是遍历每个返回的记录并将其添加到数组。然后将该数组传递给TagCloud对象。