您的位置:首页 > 数据库

ADOMD.NET实现多维数据库数据挖掘相关信息查看功能

2008-08-03 20:56 701 查看
目标
1. 查看支持挖掘的算法信息

2. 查看挖掘结构信息

3. 查看挖掘结构列信息

4. 查看挖掘结构模型信息

实现目标类关系图与详细信息图

Code

using System;

using System.Collections.Generic;

using System.Text;

using Microsoft.AnalysisServices.AdomdClient;

using System.Data.Common;

using System.Data;

using System.Windows.Forms;

namespace WinMinnig

{

public class MyMinnig

{

public MyMinnig()

{

}

public static AdomdConnection GetOpenConnection(string conStr)

{

AdomdConnection con = new AdomdConnection();

con.ConnectionString = conStr;

if (con.State.Equals(ConnectionState.Closed))

con.Open();

return con;

}

/// <summary>

/// 获取挖掘模型信息集合

/// </summary>

/// <param name="models"></param>

/// <returns></returns>

public static DataTable MiningModels(MiningModelCollection models)

{

DataTable table = new DataTable("MiningModels");

table.Columns.Add("Algorithm");

table.Columns.Add("Name");

table.Columns.Add("AllowDrillThrough");

table.Columns.Add("Parent");

DataRow row = null;

foreach (MiningModel model in models)

{

row = table.NewRow();

row["Algorithm"] = model.Algorithm;

row["Name"] = model.Name;

row["AllowDrillThrough"] = model.AllowDrillThrough.ToString();

row["Parent"] = model.Parent.Name;

table.Rows.Add(row);

}

return table;

}

/// <summary>

/// 获取挖掘结构信息集合

/// </summary>

/// <param name="structures"></param>

/// <returns></returns>

public static DataTable MiningStructures(MiningStructureCollection structures)

{

DataTable table = new DataTable("MiningStructures");

table.Columns.Add("Name");

DataRow row = null;

foreach (MiningStructure structure in structures)

{

row = table.NewRow();

row["Name"] = structure.Name;

row["Name"] = structure.Caption;

row["Name"] = structure.Description;

row["Name"] = structure;

table.Rows.Add(row);

}

return table;

}

/// <summary>

/// 根据已打开的连接和挖掘结构称称获取挖掘结构实例

/// </summary>

/// <param name="openConnection"></param>

/// <param name="structrueName"></param>

/// <returns></returns>

public static MiningStructure GetStructureByName(AdomdConnection openConnection,string structrueName)

{

return openConnection.MiningStructures[structrueName];

}

/// <summary>

/// 获取挖掘结构的挖掘模型

/// </summary>

/// <param name="structure"></param>

/// <returns></returns>

public static DataTable StructureModels(MiningStructure structure)

{

DataTable table = new DataTable("MiningModels");

table.Columns.Add("Algorithm");

table.Columns.Add("Name");

table.Columns.Add("AllowDrillThrough");

table.Columns.Add("Parent");

DataRow row = null;

MiningModelCollection models = structure.MiningModels;

foreach (MiningModel model in models)

{

row = table.NewRow();

row["Algorithm"] = model.Algorithm;

row["Name"] = model.Name;

row["AllowDrillThrough"] = model.AllowDrillThrough.ToString();

row["Parent"] = model.Parent.Name;

table.Rows.Add(row);

}

return table;

}

/// <summary>

/// 获取挖掘结构列信息集合

/// </summary>

/// <param name="columns"></param>

/// <returns></returns>

public static DataTable StructureColumns(MiningStructureColumnCollection columns)

{

DataTable table = new DataTable("StructureColumns");

table.Columns.Add("Name");

table.Columns.Add("Content");

table.Columns.Add("Type");

table.Columns.Add("Description");

DataRow row = null;

foreach (MiningStructureColumn column in columns)

{

row = table.NewRow();

row["Name"] = column.Name;

row["Content"] = column.Content;

row["Type"] = column.Type.ToString();

row["Description"] = column.Description;

table.Rows.Add(row);

if(column.Columns.Count>0)

{

DataTable table1= StructureColumns(column.Columns);

for (int i = 0; i < table1.Rows.Count;i++ )

{

table.Rows.Add(table1.Rows[i].ItemArray);

}

}

}

return table;

}

/// <summary>

/// 获取多维数据库支持数据挖掘的算法集

/// </summary>

/// <param name="servieces"></param>

/// <returns></returns>

public static DataTable MiningServices(MiningServiceCollection servieces)

{

DataTable table = new DataTable("MiningServices");

table.Columns.Add("Name");

table.Columns.Add("DisplayName");

table.Columns.Add("Descrioption");

DataRow row = null;

foreach (MiningService service in servieces)

{

row = table.NewRow();

row["Name"] = service.Name;

row["DisplayName"] = service.DisplayName;

row["Descrioption"] = service.Description;

table.Rows.Add(row);

}

return table;

}

/// <summary>

/// 获取多维数据库支持数据挖掘算法信息,以树结点组织信息

/// </summary>

/// <param name="servieces"></param>

/// <returns></returns>

public static TreeNode BuildMiningServies(MiningServiceCollection servieces)

{

TreeNode treeNode = new TreeNode();

treeNode.Text = "数据挖掘算法";

treeNode.Name = "$Servieces";

foreach (MiningService service in servieces)

{

treeNode.Nodes.Add(service.Name, service.DisplayName).ToolTipText = service.Description;

}

return treeNode;

}

/// <summary>

/// 获取多维数数据库数据挖掘结构集合,以树结点组织信息

/// </summary>

/// <param name="structures"></param>

/// <returns></returns>

public static TreeNode BuildMiningStructures(MiningStructureCollection structures)

{

TreeNode treeNode = new TreeNode();

treeNode.Text = "挖掘结构";

treeNode.Name = "$Structures";

TreeNode node = null;

foreach( MiningStructure structure in structures)

{

node=treeNode.Nodes.Add(structure.Name,structure.Caption);

node.Nodes.Add(BuildStructureColumns(structure.Columns));

node.Nodes.Add(BuildStuctureModes(structure.MiningModels));

}

return treeNode;

}

/// <summary>

/// 获取数据挖掘结构列信息集合,以树结点组织信息

/// </summary>

/// <param name="columns"></param>

/// <returns></returns>

public static TreeNode BuildStructureColumns(MiningStructureColumnCollection columns)

{

TreeNode treeNode=new TreeNode() ;

treeNode.Name = "$Columns";

treeNode.Text = "列";

foreach(MiningStructureColumn column in columns)

{

treeNode.Nodes.Add(column.Name,column.Name);

if (column.Columns.Count>0)

treeNode.Nodes[column.Name].Nodes.Add(BuildStructureColumns(column.Columns));

}

return treeNode;

}

/// <summary>

/// 获取数据挖掘模信息集哈,以树点组织信息

/// </summary>

/// <param name="models"></param>

/// <returns></returns>

public static TreeNode BuildStuctureModes(MiningModelCollection models)

{

TreeNode treeNode = new TreeNode();

treeNode.Text = "挖掘模型";

treeNode.Name = "$Models";

TreeNode node = null;

foreach(MiningModel mode in models)

{

node= treeNode.Nodes.Add(mode.Name,mode.Name);

node.ToolTipText = mode.Algorithm;

}

return treeNode;

}

}

}

实现效果





代码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐