Многие приложения требуют авторизации для полноценного использования. Сегодня мы напишем простую форму авторизации Windows-приложений на языке C#.
Шаг 1. Создание базы
Первым делом создадим новую базу данных test
для хранения тестовой информации. Добавьте таблицу user
со следующими полями:
id
(INT) c атрибутомAUTO_INCREMENT
;name
(VARCHAR(100));title
(VARCHAR(100));address
(VARCHAR(100)).

user
в базе данных test
Шаг 2. Создание проекта
Создайте проект для нового приложения. В Visual Studio для этого нужно зайти в меню File
> New
> Project
.

После этого появится окно New Project:

В поле Name
нужно вписать название вашего проекта, в поле Location
– указать нужную директорию, в Solution name
– ввести название решения. Заполнили данные – нажимаем OK
.

Шаг 3. Создание интерфейса
Создайте представление будущей формы авторизации, как показано на рисунке ниже. Добавьте два поля (username
и password
) и кнопку для входа.

Шаг 4. Настройка соединения с базой
Создайте класс connection
для настройки соединения с базой. Пример реализации представлен в листинге ниже:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
using System.Data;namespace Connection_DB
{
class connection
{
MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;
static string host = "localhost";
static string database = "test";
static string userDB = "ecco";
static string password = "password";
public static string strProvider = "server=" + host + ";Database=" + database + ";User ID=" + userDB + ";Password=" + password;
public bool Open()
{
try
{
strProvider = "server=" + host + ";Database=" + database + ";User ID=" + userDB + ";Password=" + password;
conn = new MySqlConnection(strProvider);
conn.Open();
return true;
}
catch (Exception er)
{
MessageBox.Show("Connection Error ! " + er.Message, "Information");
}
return false;
} public void Close()
{
conn.Close();
conn.Dispose();
} public DataSet ExecuteDataSet(string sql)
{
try
{
DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter(sql, conn);
da.Fill(ds, "result");
return ds;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return null;
} public MySqlDataReader ExecuteReader(string sql)
{
try
{
MySqlDataReader reader;
MySqlCommand cmd = new MySqlCommand(sql, conn);
reader = cmd.ExecuteReader();
return reader;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return null;
} public int ExecuteNonQuery(string sql)
{
try
{
int affected;
MySqlTransaction mytransaction = conn.BeginTransaction();
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
affected = cmd.ExecuteNonQuery();
mytransaction.Commit();
return affected;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return -1;
}
}
}
Шаг 5. Код авторизации
Наконец, вернитесь к форме и добавьте следующий код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;namespace Connection_DB
{
public partial class Form1 : Form
{
connection con = new connection();
string id, username, password, firstname, lastname, address;
public Form1()
{
InitializeComponent();
} private void btnLogin_Click(object sender, EventArgs e)
{
try
{ if (txtUsername.Text != "" && txtPassword.Text != "")
{
con.Open();
string query = "select id,username,password,firstname,lastname,address from user WHERE username ='" + txtUsername.Text + "' AND password ='" + txtPassword.Text + "'";
MySqlDataReader row;
row = con.ExecuteReader(query);
if (row.HasRows)
{
while (row.Read())
{
id = row["id"].ToString();
username = row["username"].ToString();
password = row["password"].ToString();
firstname = row["firstname"].ToString();
lastname = row["lastname"].ToString();
address = row["address"].ToString();
} MessageBox.Show("Data found your name is " + firstname + " " + lastname + " " + " and your address at " + address);
}
else
{
MessageBox.Show("Data not found", "Information");
}
}
else
{
MessageBox.Show("Username or Password is empty", "Information");
}
}
catch
{
MessageBox.Show("Connection Error", "Information");
}
}
}
}
Результат
Нажмите F5
, чтобы запустить программу. Если соединение с базой данных успешно установится, вы увидите только что созданную форму.

Исходный код этой простой формы авторизации вы найдете на Github.
У нас есть много полезных материалов по C# для начинающих:
- Лучшие актуальные шпаргалки по C# на все случаи жизни
- Видеокурс по C# с нуля: от основ до полноценного приложения
- Самый понятный видеокурс по C# для новичков
Комментарии
Отличный пример того, как не стоит писать код. Автор перевел статью, по ощущениям она написана студентом, который делал свою первую лабораторную работу: тут тебе и нейминги не по код стайлу, добавление параметров sql запроса plain text'ом в query, и методы "Open", возвращающие bool. В общем полный набор антипатернов.
А можете написать статью о том как стоит писать код? Просто куда не глянь, везде "умные люди" пишут что так не стоит писать код, но вот сами ни одной статьи так и не написали. Напишите статью, чтобы начинающие программисты поняли как стоит писать.