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]; } } } }
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]]); } } }