//Метод добавления устройства в список устройств и таблицу DevList БД public void addel() { if ((newdev != null) && (jobscol.SelectedIndex > -1)) { //Создание нужных объектов NewItem item = new NewItem(); clsJobs j = new clsJobs(); clsWorker w = new clsWorker(); //Присваивание выбранных значений объектам item.Code = clsList.LstItem.Count + 1; item.Device = newdev.Text; j.JobName = clsList.JobList[jobscol.SelectedIndex].JobName; j.pTP = clsList.JobList[jobscol.SelectedIndex].pTP; j.JobPeriod = clsList.JobList[jobscol.SelectedIndex].JobPeriod; w.WorkerID = workerbox.SelectedItem.ToString(); foreach (clsWorker wr in clsList.WrkList) { if (w.WorkerID.Equals(wr.WorkerID)) { w.FIO = wr.FIO; break; } } item.MetroWorker = w; item.Job = j; //Добавление созданного устройства в список clsList.LstItem.Add(item); //Добавление устройства в таблицу DevLIst БД myConnection = new OleDbConnection(dlmconnection); // открываем соединение с БД myConnection.Open(); OleDbCommand command = new OleDbCommand("INSERT INTO DevList (Код, Устройство, Вид_работы, Ответственный) VALUES('" + item.Code + "', '" + item.Device + "', '" + item.Job.pTP + "', '" + item.MetroWorker.WorkerID + "');", myConnection); command.ExecuteNonQuery(); myConnection.Close(); } else { btnadd.Enabled = false; } }
//Метод загрузки всей БД в С# public void initlist() { clsList.LstItem.Clear(); clsList.WrkList.Clear(); clsList.JobList.Clear(); bool flgDetect; int tmpInx; //Команда загрузки таблицы WorkersTab БД OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM WorkersTab;", myConnection); DataTable TabWorkers = new DataTable(); DataTable TabItems = new DataTable(); adapter.Fill(TabWorkers); //Цикл заполнения списка, соответствуюзего таблице WorkersTab БД, данными из таблицы for (int i = 0; i < TabWorkers.Rows.Count; i++) { clsWorker worker = new clsWorker(); worker.WorkerID = TabWorkers.Rows[i][0].ToString(); worker.FIO = TabWorkers.Rows[i][1].ToString(); clsList.WrkList.Add(worker); } //Команда загрузки таблицы JobPeriod БД adapter.SelectCommand = new OleDbCommand("SELECT * FROM JobPeriod;", myConnection); DataTable TabPer = new DataTable(); List <clsDateTime> timeper = new List <clsDateTime>(); adapter.Fill(TabPer); //Цикл заполнения списка, соответствуюзего таблице JobPeriod БД, данными из таблицы for (int i = 0; i < TabPer.Rows.Count; i++) { clsDateTime period = new clsDateTime(); period.DatePeriod = TabPer.Rows[i][0].ToString(); timeper.Add(period); } //Команда загрузки таблицы JobList БД adapter.SelectCommand = new OleDbCommand("SELECT * FROM JobList;", myConnection); DataTable TabJobs = new DataTable(); adapter.Fill(TabJobs); //Цикл заполнения списка, соответствуюзего таблице JobList БД, данными из таблицы for (int i = 0; i < TabJobs.Rows.Count; i++) { clsJobs job = new clsJobs(); clsDateTime date = new clsDateTime(); int j = 0; job.pTP = TabJobs.Rows[i][0].ToString(); job.JobName = TabJobs.Rows[i][1].ToString(); foreach (clsDateTime d in timeper) { if (TabJobs.Rows[i][2].Equals(d.DatePeriod)) { j++; break; } } job.JobPeriod = timeper[j]; clsList.JobList.Add(job); } //Команда загрузки таблицы DevList БД adapter.SelectCommand = new OleDbCommand("SELECT * FROM DevList;", myConnection); adapter.Fill(TabItems); //Цикл заполнения списка, соответствуюзего таблице DevList БД, данными из таблицы for (int i = 0; i < TabItems.Rows.Count; i++) { NewItem Item = new NewItem(); Item.Code = Convert.ToInt32(TabItems.Rows[i][0].ToString()); flgDetect = false; tmpInx = 0; for (int j = 0; j < clsList.WrkList.Count; j++) { if (TabItems.Rows[i][3].Equals(clsList.WrkList[j].WorkerID)) { flgDetect = true; tmpInx = j; break; } } if (flgDetect) { Item.MetroWorker = clsList.WrkList[tmpInx]; flgDetect = false; } else { Item.MetroWorker = null; } for (int j = 0; j < clsList.JobList.Count; j++) { if (TabItems.Rows[i][2].Equals(clsList.JobList[j].pTP)) { flgDetect = true; tmpInx = j; break; } } if (flgDetect) { Item.Job = clsList.JobList[tmpInx]; } else { Item.Job = null; } Item.Device = TabItems.Rows[i][1].ToString(); clsList.LstItem.Add(Item); } //Команда загрузки таблицы Report БД adapter.SelectCommand = new OleDbCommand("SELECT * FROM Report;", myConnection); DataTable TabRep = new DataTable(); adapter.Fill(TabRep); //Цикл заполнения списка, соответствуюзего таблице Report БД, данными из таблицы for (int i = 0; i < TabRep.Rows.Count; i++) { NewItem item = new NewItem(); clsJobs job = new clsJobs(); clsWorker worker = new clsWorker(); clsDateTime time = new clsDateTime(); ReportCls report = new ReportCls(); report.Code = Convert.ToInt32(TabRep.Rows[i][0].ToString()); try { time.PlanTime = Convert.ToDateTime(TabRep.Rows[i][1].ToString()); time.CheckTime = Convert.ToDateTime(TabRep.Rows[i][2].ToString()); } catch { } job.pTP = TabRep.Rows[i][3].ToString(); item.Device = TabRep.Rows[i][4].ToString(); worker.FIO = TabRep.Rows[i][5].ToString(); report.AllDates = time; report.pTP = job; report.device = item; report.FIO = worker; clsList.RepList.Add(report); } }
//Метод нажатия на кнопку "Добавить в отчет" private void btnRepClick(object sender, EventArgs e) { //Условия срабатывания кнопки по CheckBox if (checkJob.Checked) { //Создание нужных объектов NewItem item = new NewItem(); clsJobs job = new clsJobs(); clsWorker worker = new clsWorker(); clsDateTime time = new clsDateTime(); //Создание объекта-строчки для финального отчета ReportCls report = new ReportCls(); //Присваивание значение созданным объектам report.Code = clsList.RepList.Count + 1; time.PlanTime = JobTime.SelectionStart.Date; time.CheckTime = JobTime.SelectionStart.AddMonths(-1); foreach (clsJobs j in clsList.JobList) { if (jobbox.SelectedItem.Equals(j.JobName)) { job.pTP = j.pTP; break; } } item.Device = dubl_listdev.SelectedItem.ToString(); foreach (clsWorker w in clsList.WrkList) { if (workerCB.SelectedItem.Equals(w.WorkerID)) { worker.FIO = w.FIO; break; } } report.AllDates = time; report.pTP = job; report.device = item; report.FIO = worker; //Добавление объекта в список / добавление записи в отчет clsList.RepList.Add(report); //Добавление строки в таблицу Report БД myConnection = new OleDbConnection(dlmconnection); // открываем соединение с БД myConnection.Open(); OleDbCommand command = new OleDbCommand("INSERT INTO Report (Код, План_дата, Факт_дата, пТП, Устройства, ФИО_исполн) VALUES('" + report.Code + "', '" + report.AllDates.PlanTime.ToShortDateString() + "', '" + report.AllDates.CheckTime.ToShortDateString() + "', '" + report.pTP.pTP + "', '" + report.device.Device + "', '" + report.FIO.FIO + "');", myConnection); command.ExecuteNonQuery(); myConnection.Close(); Close(); } //Действие, если условие false else { MessageBox.Show("Поставьте подпись"); } }