Untitled
unknown
csharp
2 years ago
7.4 kB
13
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