Untitled

 avatar
unknown
csharp
2 years ago
7.4 kB
8
Indexable
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;

namespace exam25._12
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private string con = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Ex;Integrated Security=True";

        public MainWindow()
        {
            InitializeComponent();
            LoadGrid();
            datagrid.SelectionChanged += DataGrid_SelectionChanged;
        }

        public void LoadGrid()
        {
            using (SqlConnection connection = new SqlConnection(con))
            {
                try
                {
                    connection.Open();
                    SqlCommand cmd = new SqlCommand("SELECT * FROM persons", connection);
                    DataTable dt = new DataTable();
                    SqlDataReader sdr = cmd.ExecuteReader();
                    dt.Load(sdr);
                    datagrid.ItemsSource = dt.DefaultView;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка при загрузке данных: " + ex.Message);
                }
            }
        }

        private void InsertBtn_Click(object sender, RoutedEventArgs e)
        {
            using (SqlConnection connection = new SqlConnection(con))
            {
                try
                {
                    connection.Open();
                    string query = "INSERT INTO Persons (Name, Age, Gender, City) VALUES (@Name, @Age, @Gender, @City)";
                    SqlCommand command = new SqlCommand(query, connection);

                    command.Parameters.AddWithValue("@Name", name_txt.Text);
                    command.Parameters.AddWithValue("@Age", int.Parse(age_txt.Text));
                    command.Parameters.AddWithValue("@Gender", gender_txt.Text);
                    command.Parameters.AddWithValue("@City", city_txt.Text);

                    command.ExecuteNonQuery();

                    LoadGrid(); // Обновление DataGrid после вставки записи
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка при вставке записи: " + ex.Message);
                }
            }
        }

        private void UpdateBtn_Click(object sender, RoutedEventArgs e)
        {
            using (SqlConnection connection = new SqlConnection(con))
            {
                try
                {
                    connection.Open();
                    string query = "UPDATE Persons SET Name = @Name, Age = @Age, Gender = @Gender, City = @City WHERE Id = @Id";
                    SqlCommand command = new SqlCommand(query, connection);

                    command.Parameters.AddWithValue("@Id", GetSelectedIdFromDataGrid());
                    command.Parameters.AddWithValue("@Name", name_txt.Text);
                    command.Parameters.AddWithValue("@Age", int.Parse(age_txt.Text));
                    command.Parameters.AddWithValue("@Gender", gender_txt.Text);
                    command.Parameters.AddWithValue("@City", city_txt.Text);

                    command.ExecuteNonQuery();

                    LoadGrid(); // Обновление DataGrid после обновления записи
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка при обновлении записи: " + ex.Message);
                }
            }
        }

        private void DeleteBtn_Click(object sender, RoutedEventArgs e)
        {
            using (SqlConnection connection = new SqlConnection(con))
            {
                try
                {
                    connection.Open();
                    string query = "DELETE FROM Persons WHERE Id = @Id";
                    SqlCommand command = new SqlCommand(query, connection);

                    command.Parameters.AddWithValue("@Id", GetSelectedIdFromDataGrid());

                    command.ExecuteNonQuery();

                    LoadGrid(); // Обновление DataGrid после удаления записи
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка при удалении записи: " + ex.Message);
                }
            }
        }

        private void ClearDataBtn_Click(object sender, RoutedEventArgs e)
        {
            name_txt.Text = "";
            age_txt.Text = "";
            gender_txt.Text = "";
            city_txt.Text = "";
        }

        private int GetSelectedIdFromDataGrid()
        {
            if (datagrid.SelectedItem != null && datagrid.SelectedItem is DataRowView)
            {
                DataRowView row = (DataRowView)datagrid.SelectedItem;
                return Convert.ToInt32(row["Id"]);
            }

            return -1;
        }
        private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            // Обработка изменения выбора и заполнение текстовых полей
            if (datagrid.SelectedItem != null && datagrid.SelectedItem is DataRowView)
            {
                DataRowView row = (DataRowView)datagrid.SelectedItem;
                name_txt.Text = row["Name"].ToString();
                age_txt.Text = row["Age"].ToString();
                gender_txt.Text = row["Gender"].ToString();
                city_txt.Text = row["City"].ToString();
            }
        }

        private void search_TextChanged(object sender, TextChangedEventArgs e)
        {
            string searchText = search.Text.Trim();

            using (SqlConnection connection = new SqlConnection(con))
            {
                try
                {
                    connection.Open();
                    string query = "SELECT * FROM persons WHERE CONVERT(NVARCHAR(MAX), Id) LIKE @SearchText OR Name LIKE @SearchText OR CONVERT(NVARCHAR(MAX), Age) LIKE @SearchText OR City LIKE @SearchText OR Gender LIKE @SearchText";
                    SqlCommand cmd = new SqlCommand(query, connection);
                    cmd.Parameters.AddWithValue("@SearchText", "%" + searchText + "%");

                    DataTable dt = new DataTable();
                    SqlDataReader sdr = cmd.ExecuteReader();
                    dt.Load(sdr);

                    datagrid.ItemsSource = dt.DefaultView;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка при выполнении поиска: " + ex.Message);
                }
            }
        }



    }
}

Editor is loading...
Leave a Comment