CellSet转换成DataTable
在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
}
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
}
---------------------------------------------------------------
aspnetx的BI笔记系列索引:
使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能
---------------------------------------------------------------


浙公网安备 33010602011771号