注意:对于本文提到的dll,因为微软没有公布,建议不要用于真实项目中去。否则以后使用中出现问题,将变的非常被动,本文仅作学习之用。
对于搞Sqlserver2005BI的朋友来说,相信肯定看到过sqlserver自带的数据挖掘模型的查看器,但是他们仅仅限于sqlserver2005客户端,微软并没有给我们提供编程接口来使用这些优秀的数据挖掘模型的查看器。后来通过webcast我知道了微软提供了三种数据挖掘模型查看器的编程控件,并且是开放源码的,可惜都是webform的,不适合于我的应用场景。于是我就想能不能把webform的源码改造成winform的控件,有这种想法到结束这种想法大概半天左右。为什么呢,因为我对挖掘模型本身的理解不透,去改造这种代码,等于给自己的项目埋下地雷,万一哪天发现我改造出来的控件根本思想上都错的,那不是白费功夫了。另外我发现,既然sqlserver2005能够调用这种控件,我能不能直接调用sqlserver2005安装目录下的dll呢?后来我借助reflector这个强大的东东,证明了我的想法是可行的。
经过一个个dll的reflector,我终于找到了我要的数据挖掘展示控件的dll,它的名字叫做Microsoft.AnalysisServices.Viewers.DLL。太伟大了,my god,呵呵臭美一下。后来我又找出它依赖的其他的dll,下面我列出他们的名字的列表,文件我就不提供下载了,只要你安装了sqlserver2005,你都能够找到这些dll。
既然找到了dll,接下去当然要试试能不能把它使用到我们的程序中来。先把Microsoft.AnalysisServices.Viewers.DLL这个dll拖到我们的工具箱.
接下来我们先拿决策树展示控件开刀,拖动它到我们的form窗体上,然后在load事件里面写上如下代码:
string Value = "Provider=MSOLAP.3;Data Source=limj;Integrated Security=SSPI;Initial Catalog=Adventure Works DW Standard Edition;";
//设置连接串
this.treeViewer1.ConnectionString = Value;
//制定挖掘模型
this.treeViewer1.MiningModelName = "TM Decision Tree";
//加载数据
this.treeViewer1.LoadViewerData(string.Empty);
完毕,运行以后显示如下结果
好了决策树可以了,接下来其他的控件我都试了一下,都没有问题,ohyeah。
下面其他的控件的展示结果。
贝叶斯算法
关联规则算法
聚类算法
时间序列
序列分析算法
相关DLL:
C:/Program Files/Microsoft SQL Server/90/Tools/Binn/VSShell/Common7/IDE
补充一下,其中好像有三个dll是搜索不到的,因为微软把它们部署到GAC中去了,你只要切换到命令行,到gac中去把他们拷贝出来就好了