ConnectDB.xaml.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using PFC.CustomControls;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data.SqlClient;
  5. using System.Linq;
  6. using System.Runtime.ConstrainedExecution;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using System.Windows.Controls;
  11. using System.Windows.Data;
  12. using System.Windows.Documents;
  13. using System.Windows.Input;
  14. using System.Windows.Media;
  15. using System.Windows.Media.Animation;
  16. using System.Windows.Media.Imaging;
  17. using System.Windows.Navigation;
  18. using System.Windows.Shapes;
  19. namespace PFC.Program.Verification.Pages
  20. {
  21. /// <summary>
  22. /// Логика взаимодействия для SearchDB.xaml
  23. /// </summary>
  24. public partial class ConnectDB : Page
  25. {
  26. /* Создание поля для совершения подключения к БД */
  27. SqlConnection conn = CommonClass.GetConnection();
  28. public ConnectDB()
  29. {
  30. InitializeComponent();
  31. /* Подключение к БД */
  32. try
  33. {
  34. conn.Open();
  35. if (conn.State.ToString() == "Open")
  36. {
  37. infoField_Txb.Text = $"Подключение успешно";
  38. criticalErrorWarning_Txb.Foreground = Brushes.SpringGreen;
  39. criticalErrorWarning_Txb.Text = $" СОСТОЯНИЕ: {conn.State};\n\n КЛИЕНТ: {conn.WorkstationId};\n\n ЭКЗЕМПЛЯР: {conn.DataSource};\n\n ПУТЬ К БД: {conn.Database}";
  40. }
  41. refreshConnection_Btn.Visibility = Visibility.Hidden;
  42. connectionStatus_Img.Source = BitmapFrame.Create(new Uri(@"pack://application:,,,/Resources/Connection+.png"));
  43. loginBtn.IsEnabled = true;
  44. regisBtn.IsEnabled = true;
  45. } catch (SqlException ex) {
  46. criticalErrorWarning_Txb.VerticalAlignment = VerticalAlignment.Top;
  47. criticalErrorWarning_Txb.HorizontalAlignment = HorizontalAlignment.Center;
  48. criticalErrorWarning_Txb.Text = "ОШИБКА: \n" + ex.Message;
  49. infoField_Txb.Foreground = Brushes.Red;
  50. infoField_Txb.Text = "Проблемы с подключением! Обратитесь к админу";
  51. connectionStatus_Img.Source = BitmapFrame.Create(new Uri(@"pack://application:,,,/Resources/Connection-.png"));
  52. refreshConnection_Btn.Visibility = Visibility.Visible;
  53. }
  54. }
  55. /* Обновление соединения */
  56. private void refreshConnection_Btn_Click(object sender, RoutedEventArgs e)
  57. {
  58. try { conn.Open(); } catch (SqlException) { MessageBox.Show("Обратитесь к админу",
  59. "Ошибка с подключением!", MessageBoxButton.OK,
  60. MessageBoxImage.Information); };
  61. if (conn.State.ToString() == "Open")
  62. {
  63. infoField_Txb.Text = $"Подключение успешно к - '{conn.Database}'";
  64. infoField_Txb.Foreground = Brushes.SpringGreen;
  65. connectionStatus_Img.Source = BitmapFrame.Create(new Uri(@"pack://application:,,,/Resources/Connection+.png"));
  66. refreshConnection_Btn.Visibility = Visibility.Hidden;
  67. criticalErrorWarning_Txb.Text = "";
  68. loginBtn.IsEnabled = true;
  69. regisBtn.IsEnabled = true;
  70. }
  71. }
  72. /* Переход на страницу авторизации или регистрации */
  73. private void WrapPanel_Click(object sender, RoutedEventArgs e)
  74. {
  75. var ClickedButton = e.OriginalSource as NavButton;
  76. NavigationService.Navigate(ClickedButton.NavUri);
  77. }
  78. }
  79. }