专注ASP.NET和SQLServer2008 BI&GIS

骂别人不革命,便是革命者,则自己不做事,而骂别人的事做得不好,自然便是更做事者。
若与此辈理论,可以被牵连到白费唇舌,一事无成,也就是白活一世,于己于人,都无益处。
我现在得了妙法,是谣言不辩,诬蔑不洗,只管自己做事。——鲁迅1934年6月21日信
posts - 252, comments - 1228, trackbacks - 27, articles - 6
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

CellSet转换成DataTable

Posted on 2007-05-22 10:14 aspnetx 阅读(216) 评论(4)  编辑 收藏 所属分类: (BI)商业智能

在ADOMD.NET下返回的CellSet结果通常来说是无法直接用到容器控件当中的,因为其并没有实现相应的接口,所以通常需要转换成DataTable然后再做处理。

以下代码收集自网络

 1    public DataTable ToDataTable(CellSet cs)
 2    {
 3        DataTable dt = new DataTable();
 4        dt.TableName = "resulttable";
 5        DataColumn dc = new DataColumn();
 6        DataRow dr = null;
 7
 8        //第一列:必有为维度描述(行头)
 9        dt.Columns.Add(new DataColumn("Description"));
10
11        //生成数据列对象
12        string name;
13
14        foreach (Position p in cs.Axes[0].Positions)
15        {
16            dc = new DataColumn();
17            name = "";
18            foreach (Member m in p.Members)
19            {
20                name = name + m.Caption + " ";
21            }

22
23            dc.ColumnName = name;
24            dt.Columns.Add(dc);
25        }

26
27        //添加行数据
28        int pos = 0;
29
30        foreach (Position py in cs.Axes[1].Positions)
31        {
32            dr = dt.NewRow();
33
34            //维度描述列数据(行头)
35            name = "";
36
37            foreach (Member m in py.Members)
38            {
39                name = name + m.Caption + "\r\n";
40            }

41            dr[0= name;
42
43            //数据列
44            for (int x = 1; x <= cs.Axes[0].Positions.Count; x++)
45            {
46                dr[x] = cs[pos++].FormattedValue;
47            }

48            dt.Rows.Add(dr);
49        }

50        return dt;
51    }
 

Feedback

#1楼    回复  引用    

2007-05-22 16:07 by flysky [未注册用户]
今天无意中从朋友那里看到了你的这个博客,感觉对我帮助挺大的。我现在正在做的是基于sql Analysis Services2005的前端展现工具研究(我毕业设计课题)。前面一段时间一直在找AS2005方面的资料,可到现在还不知道如何下手去整一个展现工具。不知道博主能不能提供一点这方面的信息与资料了!谢谢!
如果可以,请发到我邮箱:flysky927@gmail.com。十分感谢!

#2楼 [楼主]   回复  引用  查看    

2007-05-22 16:13 by aspnetx      
@flysky
正好我会有一个随笔马上要发布,请先参考一下吧.

#3楼 [楼主]   回复  引用  查看    

2007-05-22 16:23 by aspnetx      
@flysky
http://www.cnblogs.com/aspnetx/archive/2007/05/22/755793.html

#4楼    回复  引用    

2007-05-22 19:40 by Dicky [未注册用户]
去我们公司测试网站看看吧: http://Test.RetailKPI.Com.Cn,Dicky,123登录...