Как заполнить dataTable по запросу SQLite?
Есть метод, который получает список сотрудников и заполняет List employeesList. Как переделать код метода, чтобы заполнялся не лист а dataTable?
private void GetEmployees()
{
employeesList.Clear();
string query = "SELECT p.Id, p.Lastname, p.Firstname, p.Surname, (SELECT Post FROM Posts WHERE e.PostId = Id), e.PersonnelNumber, p.DateOfBirth, e.IsActive " +
"FROM Employees e " +
"INNER JOIN Persons p " +
"ON p.Id = e.PersonId " +
"ORDER BY p.Lastname";
try
{
command = DataBase.GetConnection().CreateCommand();
command.CommandText = query;
DataBase.OpenConnection();
reader = command.ExecuteReader();
while (reader.Read())
{
employeesList.Add(new ViewEmployeesModel
{
Id = reader.GetInt32(0),
Lastname = reader.GetString(1),
Firstname = reader.GetString(2),
Surname = reader.GetString(3),
Post = reader.GetString(4),
PersonnelNumber = reader.GetInt32(5),
DateOfBirth = reader.GetString(6),
IsActive = reader.GetString(7) == "1" ? "действующий" : "уволен"
});
}
reader.Close();
}
catch (Exception ex)
{
MessageBox.Show($"Не удалось загрузить список сотрудников :" +
$"\n\"{ex.Message}\"\nОбратитесь к системному администратору для устранения ошибки.",
"Ошибка при работе с Базой Данных", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
DataBase.CloseConnection();
}
Таблица в WinForms сейчас заполняется из источника List employeesTable.DataSource = employeesList Но нужно, чтобы таблица заполнялась из dataTable.