コード例 #1
0
ファイル: Form1.cs プロジェクト: vitalixek/iClass
        public void Classify()
        {
            com.Send(dtAtrributes);
            com.Execute();

            for (int m = 0; m < tabControl1.TabCount; m++)
            {
                datatable[m]            = com.Receive(datatable[m]);
                tabControl1.SelectedTab = tabControl1.TabPages[m];
                tabpage1 = tabControl1.TabPages[m];
                if (tabControl1.SelectedTab != null) // Добавление значений в каждый DataGridView!
                {
                    Control[] matches = tabControl1.SelectedTab.Controls.Find("DataGridV" + m.ToString(), true);
                    if (matches.Length > 0 && matches[0] is DataGridView)
                    {
                        DataGridView dgv = (DataGridView)matches[0];
                        dgv.DataSource = datatable[m];
                    }
                }
            }
        }
コード例 #2
0
        public void ClassifyFromDataBase(DataTable dt, List <DataTable> datatables, SqlConnection cnn)
        {
            SqlDataAdapter        da_attributes  = new SqlDataAdapter();
            List <SqlDataAdapter> da_classifiers = new List <SqlDataAdapter>();
            List <string>         names          = new List <string>();

            da_attributes.SelectCommand = new SqlCommand("Select * from CObject", cnn);
            for (int i = 0; i < datatables.Count; i++)
            {
                names.Add(tabcontrol.TabPages[i].Name);
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = new SqlCommand("Select * from [" + names[i] + "]", cnn);
                string fields = "";
                foreach (DataRow dr in datatables[i].Rows)
                {
                    fields += "[" + dr[0] + "], ";
                }
                fields = fields.Remove(fields.Length - 2);
                string insertCommand = "Insert into [" + names[i] + "] (CObject_id, " + fields + ") values (@CObject_id, ";
                foreach (DataRow dr in datatables[i].Rows)
                {
                    insertCommand += "@Cla" + datatables[i].Rows.IndexOf(dr).ToString() + ", ";
                }
                insertCommand    = insertCommand.Remove(insertCommand.Length - 2);
                insertCommand   += ")";
                da.InsertCommand = new SqlCommand(insertCommand, cnn);
                da.InsertCommand.Parameters.Add("@CObject_id", SqlDbType.Int, 16, "CObject_id");
                foreach (DataRow dr in datatables[i].Rows)
                {
                    da.InsertCommand.Parameters.Add("@Cla" + datatables[i].Rows.IndexOf(dr).ToString(), SqlDbType.VarChar, 50, "[" + dr[0] + "]");
                }



                string updateCommand = "Update [" + names[i] + "] set ";
                foreach (DataRow dr in datatables[i].Rows)
                {
                    fields         = "[" + dr[0] + "]=@Cla" + datatables[i].Rows.IndexOf(dr).ToString() + ", ";
                    updateCommand += fields;
                }
                updateCommand   += "CObject_id=@CObject_id ";
                updateCommand   += "where c" + i + "_id=@c" + i + "_id";
                da.UpdateCommand = new SqlCommand(updateCommand, cnn);
                da.UpdateCommand.Parameters.Add("@c" + i + "_id", SqlDbType.Int, 16, "c" + i + "_id");
                da.UpdateCommand.Parameters.Add("@CObject_id", SqlDbType.Int, 16, "CObject_id");
                foreach (DataRow dr in datatables[i].Rows)
                {
                    da.UpdateCommand.Parameters.Add("@Cla" + datatables[i].Rows.IndexOf(dr).ToString(), SqlDbType.VarChar, 50, "[" + dr[0] + "]");
                }



                da_classifiers.Add(da);
            }
            DataSet ds = new DataSet();

            da_attributes.Fill(ds, "CObject");
            foreach (SqlDataAdapter da in da_classifiers)
            {
                da.Fill(ds, names[da_classifiers.IndexOf(da)]);
            }

            xyz.NumberOfObjects(1);

            DataTable dta = new DataTable();

            dta.Columns.Add("Признак");
            dta.Columns.Add("Значение");

            foreach (DataRow row in ds.Tables["CObject"].Rows)
            {
                for (int i = 1; i < ds.Tables["CObject"].Columns.Count; i++)
                {
                    DataRow dr = dta.NewRow();
                    dr[0] = ds.Tables["CObject"].Columns[i].ColumnName;
                    dr[1] = row[i];
                    dta.Rows.Add(dr);
                }
                xyz.Send(dta);
                xyz.Execute();

                for (int m = 0; m < tabControl1.TabCount; m++)
                {
                    datatables[m] = xyz.Receive(datatables[m]);
                    DataRow dr = ds.Tables[names[m]].NewRow();
                    dr[1] = row[0];
                    for (int k = 0; k < datatables[m].Rows.Count; k++)
                    {
                        dr[k + 2] = datatables[m].Rows[k][1].ToString();
                    }
                    ds.Tables[names[m]].Rows.Add(dr);
                    da_classifiers[m].Update(ds.Tables[names[m]]);
                }
            }
        }