⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 利用AMO开发包做的一个数据挖掘小程序 包括创建数据连接 数据视图 挖掘结构 挖掘模型 训练
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.AnalysisServices;
using System.Data.SqlClient;
using System.Data.OleDb;
//using Microsoft.AnalysisServices.AdomdServer;

namespace ADO
{
    public partial class FrmTest : Form
    {
        Server m_svr;
     
        Database m_db;
        MiningStructure m_ms;
        //MiningModel m_mm;
        //string ProgressString;
        string Message;
        string constring;


        //   Microsoft.AnalysisServices.AdomdServer


        public FrmTest()
        {
            InitializeComponent();
            //m_ms.Process(
            Message = "";
            constring = "Data Source=localhost;Integrated Security=SSPI;Persist Security Info=true;Initial Catalog=ZJXT;User Id=sa;Password=123";
        }

        private void btnSource_Click(object sender, EventArgs e)
        {
            CreateDatabase();
            Message = "数据源创建完毕!";
            MessageBox.Show(Message);
        }

        private void CreateDatabase()
        {

            m_svr = new Server();
            m_svr.Connect("Provider=msolap;Data Source=localhost");
            //OleDbConnection cn = new OleDbConnection(constring);

            

            m_db = new Database("ZJXT1", Utils.GetSyntacticallyValidID("ZJXT1", typeof(Database)));

            if (m_svr.Databases.ContainsName("ZJXT1"))
                m_svr.Databases.RemoveAt(m_svr.Databases.IndexOfName("ZJXT1"));

            m_svr.Databases.Add(m_db);
            m_db.Update();

            // svr.Disconnect();
        }

        private void btnView_Click(object sender, EventArgs e)
        {
            CreateDataAccessObjects(m_db);
            Message = "数据视图创建完毕!";
            MessageBox.Show(Message);
        }

        private void CreateDataAccessObjects(Database db)
        {
            RelationalDataSource ds = new RelationalDataSource("ZJXT", "ZJXT");
            ds.ConnectionString = constring;
                //"Provider=SQLNCLI;Data Source=202.114.215.77;" +"Integrated Security=SSPI;Initial Catalog=ZJXT;User Id=sa;Password=";
            db.DataSources.Add(ds);//创建数据源

            DataSet dset = new DataSet();
            SqlConnection cn = new SqlConnection(constring);//Provider=SQLNCLI;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=ZJXT
                //"Integrated Security=true;Initial Catalog=ZJXT");

            string st = "SELECT * FROM T_ZDZD";
            SqlDataAdapter da = new SqlDataAdapter(st, cn);
            da.FillSchema(dset, SchemaType.Mapped, "T_ZDZD");

            st = "SELECT * FROM T_JCJC";
            da = new SqlDataAdapter(st, cn);
            da.FillSchema(dset, SchemaType.Mapped, "T_JCJC");

            st = "SELECT * FROM T_WZWZ";
            da = new SqlDataAdapter(st, cn);
            da.FillSchema(dset, SchemaType.Mapped, "T_WZWZ");

            DataRelation Relation;
            Relation = new DataRelation("ZDrelation", dset.Tables[2].Columns["BH"], dset.Tables[0].Columns["BH"]);
            dset.Relations.Add(Relation);
            //Relation = new DataRelation("ZDrelation1", dset.Tables[2].Columns["WZBH"], dset.Tables[0].Columns["WZBH"]);
            //dset.Relations.Add(Relation);

            Relation = new DataRelation("JCrelation", dset.Tables[2].Columns["BH"], dset.Tables[1].Columns["BH"]);
            dset.Relations.Add(Relation);
            //Relation = new DataRelation("JCrelation1", dset.Tables[2].Columns["WZBH"], dset.Tables[1].Columns["WZBH"]);
            //dset.Relations.Add(Relation);

            DataSourceView dsv = new DataSourceView("ZJXT", "ZJXT");
            dsv.DataSourceID = "ZJXT";
            dsv.Schema = dset.Clone();
            db.DataSourceViews.Add(dsv);//创建数据源视图
            db.Update(UpdateOptions.ExpandFull);
        }

        private void btnStruct_Click(object sender, EventArgs e)
        {
            CreateMiningStructure(m_db);
            Message = "挖掘结构创建完毕!";
            MessageBox.Show(Message);
        }

        private void CreateMiningStructure(Database db)
        {
            MiningStructure ms = new MiningStructure("专家1", "专家1");
            ms.Source = new DataSourceViewBinding("ZJXT");

            ScalarMiningStructureColumn BH = new ScalarMiningStructureColumn("BH", "BH");
            BH.Type = MiningStructureColumnTypes.Long;
            BH.Content = MiningStructureColumnContents.Key;
            BH.IsKey = true;
            BH.KeyColumns.Add("T_WZWZ", "BH", OleDbType.Integer);
            ms.Columns.Add(BH);

            ScalarMiningStructureColumn YSZD = new ScalarMiningStructureColumn("YSZD", "YSZD");
            YSZD.Type = MiningStructureColumnTypes.Text;
            YSZD.Content = MiningStructureColumnContents.Discrete;
            YSZD.KeyColumns.Add("T_WZWZ", "YSZD", OleDbType.WChar);
            ms.Columns.Add(YSZD);


            //构造嵌套表


            TableMiningStructureColumn T_ZDZD = new TableMiningStructureColumn("T_ZDZD", "T_ZDZD");
            ScalarMiningStructureColumn FSBW = new ScalarMiningStructureColumn("FSBW", "FSBW");
            //T_ZDZD.ForeignKeyColumns.Add("T_ZDZD", "BRBH", OleDbType.Integer);//???
            T_ZDZD.ForeignKeyColumns.Add("T_ZDZD", "BH", OleDbType.Integer);

            ScalarMiningStructureColumn XXBH = new ScalarMiningStructureColumn("XXBH", "XXBH");
            XXBH.Type = MiningStructureColumnTypes.Long;
            XXBH.IsKey = true;
            XXBH.Content = MiningStructureColumnContents.Key;
            XXBH.KeyColumns.Add("T_ZDZD", "XXBH", OleDbType.Integer);
            T_ZDZD.Columns.Add(XXBH);

            FSBW.Type = MiningStructureColumnTypes.Long;
            FSBW.Content = MiningStructureColumnContents.Discrete;
            FSBW.KeyColumns.Add("T_ZDZD", "FSBW", OleDbType.Integer);
            T_ZDZD.Columns.Add(FSBW);

            ScalarMiningStructureColumn YZCD = new ScalarMiningStructureColumn("YZCD", "YZCD");
            YZCD.Type = MiningStructureColumnTypes.Long;
            YZCD.Content = MiningStructureColumnContents.Discrete;
            YZCD.KeyColumns.Add("T_ZDZD", "YZCD", OleDbType.Integer);
            T_ZDZD.Columns.Add(YZCD);

            ScalarMiningStructureColumn FSPL = new ScalarMiningStructureColumn("FSPL", "FSPL");
            FSPL.Type = MiningStructureColumnTypes.Long;
            FSPL.Content = MiningStructureColumnContents.Discrete;
            FSPL.KeyColumns.Add("T_ZDZD", "FSPL", OleDbType.Integer);
            T_ZDZD.Columns.Add(FSPL);

            ScalarMiningStructureColumn ZZBM = new ScalarMiningStructureColumn("ZZBM", "ZZBM");
            ZZBM.Type = MiningStructureColumnTypes.Long;
            ZZBM.Content = MiningStructureColumnContents.Discrete;
            ZZBM.KeyColumns.Add("T_ZDZD", "ZZBM", OleDbType.Integer);
            T_ZDZD.Columns.Add(ZZBM);

           

            ms.Columns.Add(T_ZDZD);     //


            TableMiningStructureColumn T_JCJC = new TableMiningStructureColumn("T_JCJC", "T_JCJC");
            //T_JCJC.ForeignKeyColumns.Add("T_JCJC", "BRBH",OleDbType.Integer);
            T_JCJC.ForeignKeyColumns.Add("T_JCJC", "BH", OleDbType.Integer);

            ScalarMiningStructureColumn HYJG = new ScalarMiningStructureColumn("HYJG", "HYJG");
            HYJG.Type = MiningStructureColumnTypes.Double;
            HYJG.Content = MiningStructureColumnContents.Discrete;
            HYJG.KeyColumns.Add("T_JCJC", "HYJG", OleDbType.Integer);
            T_JCJC.Columns.Add(HYJG);

            ScalarMiningStructureColumn ZBBM = new ScalarMiningStructureColumn("ZBBM", "ZBBM");
            ZBBM.Type = MiningStructureColumnTypes.Long;
            ZBBM.Content = MiningStructureColumnContents.Discrete;
            ZBBM.KeyColumns.Add("T_JCJC", "ZBBM", OleDbType.Integer);
            T_JCJC.Columns.Add(ZBBM);

            ScalarMiningStructureColumn JCBM = new ScalarMiningStructureColumn("JCBM", "JCBM");
            JCBM.Type = MiningStructureColumnTypes.Long;
            JCBM.Content = MiningStructureColumnContents.Discrete;
            JCBM.KeyColumns.Add("T_JCJC", "JCBM", OleDbType.Integer);
            T_JCJC.Columns.Add(JCBM);

            ScalarMiningStructureColumn JCJG = new ScalarMiningStructureColumn("JCJG", "JCJG");
            JCJG.Type = MiningStructureColumnTypes.Long;
            JCJG.Content = MiningStructureColumnContents.Discrete;
            JCJG.KeyColumns.Add("T_JCJC", "JCJG", OleDbType.Integer);
            T_JCJC.Columns.Add(JCJG);

            ScalarMiningStructureColumn JCLB = new ScalarMiningStructureColumn("JCLB", "JCLB");
            JCLB.Type = MiningStructureColumnTypes.Long;
            JCLB.Content = MiningStructureColumnContents.Discrete;
            JCLB.KeyColumns.Add("T_JCJC", "JCLB", OleDbType.Integer);
            T_JCJC.Columns.Add(JCLB);

            ScalarMiningStructureColumn BH1 = new ScalarMiningStructureColumn("XXBH", "XXBH");
            BH1.Type = MiningStructureColumnTypes.Long;
            BH1.Content = MiningStructureColumnContents.Key;
            BH1.IsKey = true;
            BH1.KeyColumns.Add("T_JCJC", "XXBH", OleDbType.Integer);
            T_JCJC.Columns.Add(BH1);
            ms.Columns.Add(T_JCJC);

            db.MiningStructures.Add(ms);
            ms.Update();
            m_ms = ms;
        }

        private void btnPress_Click(object sender, EventArgs e)
        {
           //CreateModels(m_ms);
            Miningmodel Mining = new Miningmodel();
            Mining.ms = m_ms;
            Mining.m_db = m_db;
            Mining.ShowDialog();
           //Message = "模型创建完毕!";
           //MessageBox.Show(Message);
           //m_db.Process(ProcessType.ProcessFull);
           //Message = "处理完毕!";
           //MessageBox.Show(Message);
        }

        //private void CreateModels(MiningStructure ms)
        //{
        //    MiningModel NNModel;
        //    MiningModelColumn mmc;


        //    NNModel = ms.CreateMiningModel(true, "Predict Disease NN");
        //    NNModel.Columns.Clear();
        //    NNModel.Algorithm = "Microsoft_Neural_Network";

        //    mmc = NNModel.Columns.Add("WZBH");
        //    mmc.SourceColumnID = "WZBH";
        //    mmc.Usage = "Key";

        //    mmc = NNModel.Columns.Add("YSZD");
        //    mmc.SourceColumnID = "YSZD";
        //    mmc.Usage = "Predict";

        //    mmc = NNModel.Columns.Add("T_ZDZD");
        //    mmc.SourceColumnID = "T_ZDZD";

        //    MiningModelColumn mmc1;

        //    mmc1 = mmc.Columns.Add("BH");
        //    mmc1.SourceColumnID = "BH";
        //    mmc1.Usage = "Key";
        //    //mmc1.Usage

        //    mmc1 = mmc.Columns.Add("ZZBM");
        //    mmc1.SourceColumnID = "ZZBM";
        //    mmc1.Usage = "Input";

        //    mmc1 = mmc.Columns.Add("FSBW");
        //    mmc1.SourceColumnID = "FSBW";
        //    mmc.Usage = "Input";

        //    mmc1 = mmc.Columns.Add("FSPL");
        //    mmc1.SourceColumnID = "FSPL";
        //    mmc1.Usage = "Input";

        //    mmc1 = mmc.Columns.Add("YZCD");
        //    mmc1.SourceColumnID = "YZCD";
        //    mmc1.Usage = "Input";


        //    mmc = NNModel.Columns.Add("T_JCJC");
        //    mmc.SourceColumnID = "T_JCJC";

        //    mmc1 = mmc.Columns.Add("BH");
        //    mmc1.SourceColumnID = "BH1";
        //    mmc1.Usage = "Key";

        //    mmc1 = mmc.Columns.Add("HYJG");
        //    mmc1.SourceColumnID = "HYJG";
        //    mmc1.Usage = "Input";

        //    mmc1 = mmc.Columns.Add("HYXM");
        //    mmc1.SourceColumnID = "HYXM";
        //    mmc.Usage = "Input";

        //    mmc1 = mmc.Columns.Add("JCDM");
        //    mmc1.SourceColumnID = "JCDM";
        //    mmc1.Usage = "Input";

        //    mmc1 = mmc.Columns.Add("JCJG");
        //    mmc1.SourceColumnID = "JCJG";
        //    mmc1.Usage = "Input";

        //    mmc1 = mmc.Columns.Add("JCLB");
        //    mmc1.SourceColumnID = "JCLB";
        //    mmc.Usage = "Input";

        //    NNModel.Update();
        //    m_mm = NNModel;
        //}

        //private void butProssese_Click(object sender, EventArgs e)
        //{
        //    m_db.Process(ProcessType.ProcessFull);
        //    Message = "处理完毕!";
        //    MessageBox.Show(Message);
        //}

        //private void FrmTest_Load(object sender, EventArgs e)
        //{

        //}

        //private void btnPredict_Click(object sender, EventArgs e)
        //{
        //    FrmPredict Predict = new FrmPredict();
        //    Predict.ShowDialog();
        //}
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -