ulvis.paste.net

Paste Search Dynamic
Recent pastes
connection
  1. using system;
  2. using system.Collections.Generic;
  3. using system.Linq;
  4. using system.Net.Mail;
  5. using system.Text;
  6. using system.Text.RegularExpressions;
  7. using system.Threading.Tasks;
  8. using system.Windows;
  9. using system.Windows.Controls;
  10. using system.Windows.Data;
  11. using system.Windows.Documents;
  12. using system.Windows.Input;
  13. using system.Windows.Media;
  14. using system.Windows.Media.Imaging;
  15. using system.Windows.Navigation;
  16. using system.Windows.Shapes;
  17.  
  18. using MySql.Data.MySqlClient;
  19.  
  20. namespace Project
  21. {
  22.     /// <summary>
  23.     /// Логика взаимодействия для MainWindow.xaml
  24.     /// </summary>
  25.     public partial class MainWindow : Window
  26.     {
  27.         private MySqlConnection connection;
  28.         private string server;                  // IP
  29.         private string database;                // Название БД
  30.         private string login;                   // Логин
  31.         private string password;                // Пароль
  32.  
  33.         public MainWindow()
  34.         {
  35.             InitializeComponent();
  36.  
  37.             InitializeDB();
  38.             OpenConnection();
  39.             CloseConnection();
  40.         }
  41.  
  42.         public void InitializeDB()
  43.         {
  44.             string connectionString;
  45.  
  46.             server = "localhost";
  47.             database = "project";
  48.             login = "root";
  49.             password = "root";
  50.  
  51.             connectionString = $"SERVER={server}; DATABASE={database}; UID={login}; PASSWORD={password};";
  52.             connection = new MySqlConnection(connectionString);
  53.         }
  54.  
  55.         public bool OpenConnection()
  56.         {
  57.             try
  58.             {
  59.                 connection.Open();
  60.  
  61.                 Status.Foreground = Brushes.Green;
  62.                 Status.Content = "Подключено";
  63.                 return true;
  64.             }
  65.             catch (MySqlException ex)
  66.             {
  67.                 Status.Foreground = Brushes.Red;
  68.                 Status.Content = ex.Message.ToString();
  69.                 return false;
  70.             }
  71.         }
  72.  
  73.         public bool CloseConnection()
  74.         {
  75.             try
  76.             {
  77.                 connection.Close();
  78.                 return true;
  79.             }
  80.             catch (MySqlException ex)
  81.             {
  82.                 MessageBox.Show(ex.Message, "Ошибка при прекращении подключения");
  83.                 return false;
  84.             }
  85.         }
  86.  
  87.  
  88.         private void LoginAccount_Click(object sender, RoutedEventArgs e)
  89.         {
  90.             string command = $"SELECT `email`, `password` FROM `project` WHERE email={Login.Text} AND password={Password.Text}";
  91.             string checkEmail;
  92.             string checkPassword;
  93.  
  94.             if (OpenConnection() == true)
  95.             {
  96.                 MySqlCommand cmd = new MySqlCommand(command, connection);
  97.                 MySqlDataReader rd = cmd.ExecuteReader();
  98.  
  99.                 while (rd.Read())
  100.                 {
  101.                     checkEmail = rd.GetString(0);
  102.                     checkPassword = rd.GetString(1);
  103.  
  104.                     if (Login.Text == checkEmail && Password.Text == checkPassword)
  105.                     {
  106.                         MessageBox.Show("Ты успешно вошёл!");
  107.                     } else
  108.                     {
  109.                         MessageBox.Show("Неверный логин или пароль!");
  110.                     }
  111.                 }
  112.  
  113.                 CloseConnection();
  114.             }
  115.         }
  116.  
  117.         private void RegisterAccount_Click(object sender, RoutedEventArgs e)
  118.         {
  119.             if(IsValidEmail(EmailReg.Text))
  120.             {
  121.                 if(PasswordReg.Text.Length >= 8)
  122.                 {
  123.                     if(NameReg.Text != "" || !isNumericValid(NameReg.Text))
  124.                     {
  125.                         if(AgeReg.Text != "" || isNumericValid(AgeReg.Text))
  126.                         {
  127.                             string command = $"INSERT INTO `project` (`email`, `password`, `name`, `age`) VALUES('{EmailReg.Text}', '{PasswordReg.Text}', '{NameReg.Text}', '{AgeReg.Text}');";
  128.  
  129.                             if (OpenConnection() == true)
  130.                             {
  131.                                 MySqlCommand cmd = new MySqlCommand(command, connection);
  132.                                 cmd.ExecuteNonQuery();
  133.                             }
  134.  
  135.                             CloseConnection();
  136.                         }
  137.                         else
  138.                         {
  139.                             AgeReg.Foreground = Brushes.Red;
  140.                             AgeReg.Text = "Возраст не должен содержать буквы или быть пустым!";
  141.                         }
  142.                     }
  143.                     else
  144.                     {
  145.                         NameReg.Foreground = Brushes.Red;
  146.                         NameReg.Text = "Имя не должно быть пустым или содержать цифры!";
  147.                     }
  148.                 }
  149.                 else
  150.                 {
  151.                     PasswordReg.Foreground = Brushes.Red;
  152.                     PasswordReg.Text = "Пароль должен быть не менее 8 символов!";
  153.                 }
  154.             }
  155.             else
  156.             {
  157.                 EmailReg.Foreground = Brushes.Red;
  158.                 EmailReg.Text = "Введи корректный Email адрес!";
  159.             }
  160.         }
  161.  
  162.         private void NewAccount_Click(object sender, RoutedEventArgs e)
  163.         {
  164.             LoginGrid.Visibility = Visibility.Hidden;
  165.         }
  166.  
  167.         bool IsValidEmail(string email)
  168.         {
  169.             try
  170.             {
  171.                 var addr = new MailAddress(email);
  172.                 return addr.Address == email;
  173.             }
  174.             catch
  175.             {
  176.                 return false;
  177.             }
  178.         }
  179.  
  180.         bool isNumericValid(string text)
  181.         {
  182.             try
  183.             {
  184.                 Regex reg = new Regex("[^0-9]");
  185.                 return reg.IsMatch(text);
  186.             }
  187.             catch
  188.             {
  189.                 return false;
  190.             }
  191.         }
  192.  
  193.  
  194.  
  195.         private void EmailReg_GotFocus(object sender, RoutedEventArgs e)
  196.         {
  197.             EmailReg.Clear();
  198.             EmailReg.Foreground = Brushes.White;
  199.         }
  200.  
  201.         private void EmailReg_LostFocus(object sender, RoutedEventArgs e)
  202.         {
  203.             if (!IsValidEmail(EmailReg.Text))
  204.             {
  205.                 EmailReg.Foreground = Brushes.Red;
  206.                 EmailReg.Text = "Введи корректный Email адрес!";
  207.  
  208.                 SolidColorBrush colorBrush = new SolidColorBrush();
  209.                 colorBrush.Color = Colors.Red;
  210.                 RegEmailLine.Stroke = colorBrush;
  211.             } else
  212.             {
  213.                 SolidColorBrush colorBrush = new SolidColorBrush();
  214.                 colorBrush.Color = Colors.Green;
  215.                 RegEmailLine.Stroke = colorBrush;
  216.             }
  217.         }
  218.  
  219.         private void PasswordReg_GotFocus(object sender, RoutedEventArgs e)
  220.         {
  221.             PasswordReg.Clear();
  222.             PasswordReg.Foreground = Brushes.White;
  223.         }
  224.  
  225.         private void PasswordReg_LostFocus(object sender, RoutedEventArgs e)
  226.         {
  227.             if (PasswordReg.Text.Length <= 8)
  228.             {
  229.                 PasswordReg.Foreground = Brushes.Red;
  230.                 PasswordReg.Text = "Пароль должен быть не менее 8 символов!";
  231.  
  232.                 SolidColorBrush colorBrush = new SolidColorBrush();
  233.                 colorBrush.Color = Colors.Red;
  234.                 RegPasswordLine.Stroke = colorBrush;
  235.             }
  236.             else
  237.             {
  238.                 SolidColorBrush colorBrush = new SolidColorBrush();
  239.                 colorBrush.Color = Colors.Green;
  240.                 RegPasswordLine.Stroke = colorBrush;
  241.             }
  242.         }
  243.  
  244.         private void AgeReg_GotFocus(object sender, RoutedEventArgs e)
  245.         {
  246.             AgeReg.Clear();
  247.             AgeReg.Foreground = Brushes.White;
  248.         }
  249.  
  250.         private void AgeReg_LostFocus(object sender, RoutedEventArgs e)
  251.         {
  252.             if (AgeReg.Text == "" || isNumericValid(AgeReg.Text))
  253.             {
  254.                 AgeReg.Foreground = Brushes.Red;
  255.                 AgeReg.Text = "Возраст не должен содержать буквы или быть пустым!";
  256.  
  257.                 SolidColorBrush colorBrush = new SolidColorBrush();
  258.                 colorBrush.Color = Colors.Red;
  259.                 RegAgeLine.Stroke = colorBrush;
  260.             }
  261.             else
  262.             {
  263.                 SolidColorBrush colorBrush = new SolidColorBrush();
  264.                 colorBrush.Color = Colors.Green;
  265.                 RegAgeLine.Stroke = colorBrush;
  266.             }
  267.         }
  268.  
  269.         private void NameReg_GotFocus(object sender, RoutedEventArgs e)
  270.         {
  271.             NameReg.Clear();
  272.             NameReg.Foreground = Brushes.White;
  273.         }
  274.  
  275.         private void NameReg_LostFocus(object sender, RoutedEventArgs e)
  276.         {
  277.             if (NameReg.Text == "" || !isNumericValid(NameReg.Text))
  278.             {
  279.                 NameReg.Foreground = Brushes.Red;
  280.                 NameReg.Text = "Имя не должно быть пустым или содержать цифры!";
  281.  
  282.                 SolidColorBrush colorBrush = new SolidColorBrush();
  283.                 colorBrush.Color = Colors.Red;
  284.                 RegNameLine.Stroke = colorBrush;
  285.             }
  286.             else
  287.             {
  288.                 SolidColorBrush colorBrush = new SolidColorBrush();
  289.                 colorBrush.Color = Colors.Green;
  290.                 RegNameLine.Stroke = colorBrush;
  291.             }
  292.         }
  293.     }
  294. }
  295.  
  296. // INSERT INTO `project` (`email`, `password`, `name`, `age`) VALUES ('test@test.ru', 'test', 'test', '18'); => register
Parsed in 0.102 seconds