Untitled
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