首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

用GridView分组如何分

2012-12-28 
用GridView分组怎么分加group by 速度慢所以想在后台分组要分组的列是 username(用户名) hostname(主机名)

用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只是实现你的排序。怎么是分组啊。搞不明白你说什么
[其他解释]
该回复于2012-12-07 14:11:51被管理员删除


[其他解释]
比如有10行数据
usename hostname 
张三     pc01 
张三     pc01 
张三     pc01 
李四     pc02
李四     pc03
马子     pc05
马子     pc05
sql中不用group by username,hostname
那怎么分组呢 

[其他解释]
你有多少数据量,一条sql还搞不定?
[其他解释]
数据量很大吗?
[其他解释]

引用:
group by只是实现你的排序。怎么是分组啊。搞不明白你说什么

你确定?group by是排序????,我又被上了一课
[其他解释]
测出来了 如果跨数据库查询比如还有2个表在另外一个数据库中
那么查询的时候如果group by和取一个时间段的条件同时存在那么查询会慢

SELECT user_name,host_name,count(*) counts  
from AUO_SEP_USB_LOG as usb, 
AUSREF.dbo.emp_data_all as emp,(另外一个数据库 数据库名AUSREF)
AUSREF.dbo.org_data_all as org 
where PATINDEX('%RECYCLER%',usb.parameter)<1
and usb.is_allow='N'
and usb.domain_name='AUO' and site_region='AUCN'
and LEN(parameter) - LEN(replace(parameter,'/','')) <= 1
and usb.user_name=emp.LOGONID and emp.org_id=org.org_id
--and usb.event_time >= '2012/12/6 0:00:00' and usb.event_time <='2012/12/7 0:00:00'
group by user_name,host_name order by counts desc
加了这句就变慢了 其实上面的函数都没占多少时间
and usb.event_time >= '2012/12/6 0:00:00' and usb.event_time <='2012/12/7 0:00:00'

[其他解释]
引用:
你有多少数据量,一条sql还搞不定?


是啊 支持
[其他解释]
关键是慢 哥哥
[其他解释]
你表中的数据量很大吗,
很大的话,速度上有点慢,
加没加索引呢
[其他解释]
接了吧 没什么结果
[其他解释]
null

热点排行