0

Суть паттерна я понимаю, но реализовать на примере моего проекта я не могу. У меня есть MainWinow.xaml , в котором есть TextBox и PasswordBox. Мне нужно проверить введенные пользователем данные затем открыть, главное окно приложения. Логику без паттерна я сделал в MainWindow.xaml.cs Базу данных я использовал SQL в свойствах файла я создал строку подключения, а дальше я не знаю что делать и как связывать. Смотрел много тем по MVVM, реализовать не могу. В дальнейшем программа должна выводить статистику,взятую с БД, по каждому студенту и выводить на Главный экран.

Свойства проекта

using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Data.SqlClient;
using System.Configuration;

namespace Helwent { /// <summary> /// Логика взаимодействия для MainWindow.xaml /// </summary>

public partial class MainWindow : Window
{   

    SqlConnection Connection = new SqlConnection(); //Создание экземпляров
    SqlCommand CommandSql = new SqlCommand();
    SqlDataReader SqlDataReader;

    public MainWindow()
    {
        InitializeComponent();

        Connection.ConnectionString = ConfigurationManager.ConnectionStrings[&quot;ConnectionString&quot;].ConnectionString.ToString(); //Получение строки подключения


    }

    /// &lt;summary&gt;
    /// Верификация Логина и Пароля с БД MSSQL
    /// &lt;/summary&gt;
    /// &lt;param name=&quot;Username&quot;&gt;Логин&lt;/param&gt;
    /// &lt;param name=&quot;Password&quot;&gt;Пароль&lt;/param&gt;
    /// &lt;returns&gt;&lt;/returns&gt;
    private bool VeryfyUser(string Username,string Password)
    {
        Connection.Open(); //Открытие подключения
        CommandSql.Connection = Connection;
        CommandSql.CommandText = &quot;select Status from Users where Username='&quot;+Username+&quot;' and Password='&quot;+Password+&quot;'&quot;; // Запрос к БД га подтверждения данных
        SqlDataReader=CommandSql.ExecuteReader(); //Передаёт сроку запроса

        if (SqlDataReader.Read()) //Считавает данные из БД
        {
            if (Convert.ToBoolean(SqlDataReader[&quot;Status&quot;]) == true) // Если Status == true, то позволяет входить
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }

    /// &lt;summary&gt;
    /// Выход из окна регистрации и входа
    /// &lt;/summary&gt;
    /// &lt;param name=&quot;sender&quot;&gt;&lt;/param&gt;
    /// &lt;param name=&quot;e&quot;&gt;&lt;/param&gt;
    private void Image_MouseDown(object sender, MouseButtonEventArgs e)
    {
        Environment.Exit(0);
    }
    /// &lt;summary&gt;
    /// Метод для перемещения окна по экрану
    /// &lt;/summary&gt;
    /// &lt;param name=&quot;sender&quot;&gt;&lt;/param&gt;
    /// &lt;param name=&quot;e&quot;&gt;&lt;/param&gt;
    private void Window_MouseDown(object sender, MouseButtonEventArgs e)
    {
        DragMove();
    }

    /// &lt;summary&gt;
    /// Кнопка Входа
    /// &lt;/summary&gt;
    /// &lt;param name=&quot;sender&quot;&gt;&lt;/param&gt;
    /// &lt;param name=&quot;e&quot;&gt;&lt;/param&gt;
    private void Sign_button_Click(object sender, RoutedEventArgs e)
    {   
        if(Connection.State == System.Data.ConnectionState.Open) // Если подключение открыто,то закрыть
        {
            Connection.Close();
        }

        if (VeryfyUser(Login_user.Text, Password_user.Password)) // Если все правильно соообщение о успешном входе
        {

        }
        else
        {
            Login_user.BorderBrush = Brushes.Red;
            Password_user.BorderBrush= Brushes.Red;
        }
    }

}

}

  • Пожалуйста, исправьте вопрос, чтобы он отражал конкретную проблему с достаточным количеством деталей для возможности дать адекватный ответ. – Дух сообщества Nov 03 '21 at 11:52
  • 1
    https://ru.stackoverflow.com/a/898861/220553 – EvgeniyZ Nov 03 '21 at 11:58

0 Answers0