Админ панель: управление пользователями в WPF с SQL Server и экспортом данных
Админ панель
Панель администратора
Инициализация страницы
public AdminPage()
{
InitializeComponent();
LoadUsers();
}
Загрузка пользователей
private void LoadUsers()
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
string sql = "SELECT id_User, Login, Block, FailPassword FROM Users";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
dgUsers.ItemsSource = dt.DefaultView;
}
}
private void btnRefresh_Click(object sender, RoutedEventArgs e) => LoadUsers();
Добавление пользователя
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Добавление пользователя");
// TODO: открыть окно добавления
}
Редактирование пользователя
private void btnEdit_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Редактирование пользователя");
// TODO: открыть окно редактирования
}
Разблокировка пользователя
private void btnUnblock_Click(object sender, RoutedEventArgs e)
{
if (dgUsers.SelectedItem == null)
{
MessageBox.Show("Выберите пользователя");
return;
}
dynamic row = dgUsers.SelectedItem;
int userId = row.id_User;
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
string sql = "UPDATE Users SET Block = 0, FailPassword = 0 WHERE id_User = @id";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@id", userId);
cmd.ExecuteNonQuery();
}
LoadUsers();
MessageBox.Show("Пользователь разблокирован");
}
Расчет процента загрузки рейсов
SELECT
t.ves_gruza_kg,
a.grusopodem_kg,
(t.ves_gruza_kg * 1.0 / a.grusopodem_kg) * 100 AS Procent
FROM Trips t
JOIN Avto a ON t.id_avto = a.id_avto
Экспорт данных
Открыть Excel → Данные → Получить данные → Из файла → Из JSON
Загрузить JSON в Excel
Сохранить как CSV (Файл → Сохранить как → Тип: CSV)
Импорт CSV в SSMS
- ПКМ на БД → Tasks → Import Flat File
- Выбрать CSV → Настроить колонки → Finish
English with a size of 3.31 KB