представляється в наступному вигляді:
Рисунок 7.1 - Структура обробки інформації
З'єднання з базою даних проводиться таким чином:
string InstConnectString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + @ "Організація.mdb"; con; = new OleDbConnection (InstConnectString);
Для здійснення пошуку по полях таблиці Співробітники в програмі передбачений спеціальний метод Search, який не тільки дозволяє швидко знаходити необхідні дані по всіх полях таблиці, а й починає працювати вже з першого введеного в поле для пошуку символу, що значно прискорює цей процесс.void Search (string SQL)
{
{dt = new DataTable (); da = new OleDbDataAdapter (SQL, con);. Fill (dt);. DataSource = dt;
}
{. Show ("Введені некоректні дані", "Пошук", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
У даний метод передається рядок SQL-запиту, яка може приймати різні значення в залежності від обраного в елементі ComboBox назви поля, по якому користувачеві необхідно провести пошук.
private void textBox1_TextChanged (object sender, EventArgs e)
{(tabControl1.SelectedTab.Text == "Співробітники")
{(NameOfField == "ID" && textBox1.Text.Length! = 0) ("Select * from Співробітники where CInt (Mid (CStr (Сотруднікі.ID), 1 , "+ textBox1.Text.Length +")) = "+ int.Parse (textBox1.Text)); if (NameOfField ==" Прізвище "&& textBox1.Text.Length! = 0) ("Select * from Співробітники where Сотруднікі.Фамілія Like '" + textBox1.Text + "%'"); if (textBox1.Text.Length == 0)
{dt = new DataTable ("Співробітники"); da = new OleDbDataAdapter ("Select * from Співробітники", con);. Fill (dt);. DataSource = dt;
}
}
Для видалення будь-якої запису з таблиці Співробітники необхідно в елемент TextBox ввести значення номера особового рахунку відповідного видаляється запису і натиснути кнопку В«ВидалитиВ».
OleDbCommand insCom = new OleDbCommand ("Delete from Співробітники where ((Сотруднікі.ID) =" + int.Parse (textBox2.Text) + ");", con); ( insCom.ExecuteNonQuery () == 1). Show ("Запис видалено", "Видалення", MessageBoxButtons.OK, MessageBoxIcon.Information);. Show ("Запис не знято", "Видалення", MessageBoxButtons.OK , MessageBoxIcon.Error); dt = new DataTable ("Співробітники"); da = new OleDbDataAdapter ("Select * from Співробітники", con);. Fill (dt);. DataSource = dt;
Для редагування даних у таблиці окремого методу не передбачено, але використовується алгоритм, який дозволяє змінювати дані безпосередньо в самому елементі dataGridView. Цей метод дуже простий і зрозумілий, для його роботи необхідно визначити позицію виділеної комірки в таблиці, запам'ятати всі дані з цього рядка, а після введення змін та підтвердження користувачем оновити дані в елементі dataGridView. p align="justify"> private void dg1_CellBeginEdit (object sender, DataGridViewCellCancelEventArgs e)
{= dg1.CurrentCell.Value; = (int) dg1.CurrentRow.Cells [0]. Value; = dg1.Columns [dg1.CurrentCellAddress.X]. HeaderText; void dg1_CellEndEdit (object sender , DataGridViewCellEventArgs e)
{
{(ColumnName == "ID")
{. Show ("Зміна цього поля неможливо", "Редагування", MessageBoxButtons.OK, MessageBoxIcon.Error);. CurrentCell.Value = edit;;
} if (ColumnName == "Дата надходження")
{. Show ("Зміна цього поля неможливо", "Редагування", MessageBoxButtons.OK, MessageBoxIcon.Error);. CurrentCell.Value = edit;;
} (edit.ToString ()! = dg1.CurrentCell.Value.ToString () && DialogResult.Yes == MessageBox.Show ("Прийняти зміни?", "Редагування" ;, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
{com = new OleDbCommand ("Update Співробітники Set [" + ColumnName + "] = '" + dg1.CurrentCell.Value + "' Where ID =" + ID, con);. ExecuteNonQuery ();
}. CurrentCell.Value = edit;
}
{. Show ("Зміна цього поля неможливо", "Редагування", MessageBoxButtons.OK, MessageBoxIcon.Error);. CurrentCell.Value = edit;
}
Для таблиці Посади елемента ComboBox заповнюються програмно з бази даних за допомогою наступного алгорітма.InstConnectString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + @ "Організація.mdb" ; con; rdr1, rdr2, rdr3; cmd1, cmd2, cmd3; Form2 ()
{(); = new OleDbConnection (InstConnectString);. Open (); = con.Cr...