日期:2014-05-17  浏览次数:20470 次

用GridView分组怎么分
加group by 速度慢
所以想在后台分组
要分组的列是 username(用户名) hostname(主机名) 
sql是 select username,hostname,count(*)as documentSumform table group username,hostname
加group by 非常慢 还连接超时 怎么搞 这个是在网上找到的代码
问题是我要现实3列不知道上面显示
他是放在StringCollection sc = new StringCollection();里面的 遍历出来可是还有用户对应的主机名呢

 现在显示的是username documentSum 用户个数
 DataTable dt2 = new DataTable();
            dt2 = usbme.getNtUserDocumentSum(this.autype.SelectedValue, documentIndexValue, start, end);
            StringCollection sc = new StringCollection();
           
            for (int i = 0; i < dt2.Rows.Count; i++)
            {
                string user_name = dt2.Rows[i]["user_name"].ToString();
                if (!sc.Contains(user_name))
                {
                    sc.Add(user_name);
                }
            }
            DataTable resultDt = new DataTable();
            resultDt.Columns.Add("user_name", typeof(string));
            resultDt.Columns.Add("documentSum", typeof(string));
            //组成新的datatble 
            foreach (string tempStr in sc)
            {
                //rainwang 66 ausz2
                string[] tempArray = new string[2];

                tempArray[0] = tempStr;
                tempArray[1] = dt2.Compute("count(documentSum)", "user_name='" + tempStr + "'").ToString();

                DataRow newRow = resultDt.NewRow();
                resultDt.Rows.Add(tempArray);
            }
            return resultDt;


------最佳解决方案--------------------
group by只是实现你的排序。怎么是分组啊。搞不明白你说什么
------其他解决方案-----------------