C#

040_WPF Login

iwannabebackendexpert 2022. 5. 20. 02:43

WPF를 이용해서 로그인창을 만들어보자

 

<Window x:Class="_040_WPFLogin.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:_040_WPFLogin"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800"
        Background="LightSteelBlue">
    <Border Background="White" Margin="20">
        <StackPanel Margin="20">
            <TextBlock Text="Login" FontSize="20" 
                       HorizontalAlignment="Center"
                       Margin="30"/>
            <Separator Background="Orange"/>
            <TextBlock Text="UserName"
                       FontSize="20"
                       Margin="0,5"/>
            <TextBox x:Name="txtUserName"
                     FontSize="30"/>
            
            <TextBlock Text="Password"
                       FontSize="20"
                       Margin="0,5"/>
            <PasswordBox x:Name="txtPassword"
                     FontSize="30"/>
            <Button x:Name="btnLogin"
                    Content="로그인"
                    FontSize="20"
                    Width="100"
                    Margin="10,20"
                    Click="btnLogin_Click"/>


        </StackPanel>
    </Border>
</Window>

디자인 xaml코드이다.

 

 

먼저 SQL Server를 연결하기 위해서 프로젝트에 우클릭 -  추가 - 서비스 기반 데이터베이스 - 이름 설정. 

DB를 추가하면 DB에 우클릭 - 새 쿼리

위 사진 처럼 설정한다. UserName과 Password 는 Null이면 안되기 때문에 Null허용 체크박스를 해제한다.

+ Id를 클릭해서 속성에서 ID 여부를 Flase -> True로 변경함.

새쿼리문 작성을 통해

INSERT INTO LoginTable(UserName, Password) values ('shpark','1234')
SELECT * FROM LoginTable

sql문 입력

namespace _040_WPFLogin
{
    /// <summary>
    /// MainWindow.xaml에 대한 상호 작용 논리
    /// </summary>
    public partial class MainWindow : Window
    {
        string connStr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Csharp\040_WPFLogin\myLogin.mdf;Integrated Security=True";
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();

            string sql = string.Format("SELECT COUNT(*) FROM LoginTable WHERE UserName='{0}' AND Password ='{1}'", txtUserName.Text, txtPassword.Password);

            SqlCommand comm = new SqlCommand(sql, conn);
            int count = Convert.ToInt32(comm.ExecuteScalar()); //리턴되는 값의 첫번재 값 받음 > object 값 리턴이기때문에 32비트 정수형으로 convert
            if (count == 1)
            {
                MessageBox.Show("Login 성공");
            }
            else
                MessageBox.Show("Login 실패");
            conn.Close();
        }
    }
}

위와 같은 코드를 통해서 Login 하면 DB에 저장된 ID,Password외에는 로그인 실패가 출력된다.

'C#' 카테고리의 다른 글

042_Chart  (0) 2022.06.09
041_Splash  (0) 2022.06.09
039_PhoneBook(Access DB예제)  (0) 2022.05.20
038_ListArray  (0) 2022.05.11
037_Calculator  (0) 2022.04.27