Добрый день, это канал Сергея Березина. Сегодня мы будем объяснять вам код для вижуал студио 1488
ДЛЯ СВЯЗИ с нами: Форум - https://pomogite.rolebb.ru/
ВК - https://vk.com/club226007094
Яндекс.Дзен - https://vk.com/club226007094
drawio (er-диаграмма)
блок схема
Для начала работы с программой Visual Studio, нам необходимо предпринять следующие шаги: 1) установить пакет MySqlData 2)Прописать строку подключения с указанием пароля и логина базы данных (localhost root), проверить код нашего подключения,
потому что могут возникнуть ошибки (Например, нужно удостовериться что у вас есть строка в общем списке using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
Именно! Теперь определимся с темой нашего приложения. Их много, на выбор, например Ветеринарная клиника, Продажа нижнего белья, Молочные продукты и прочее.
В нашем приложении должны быть реализованы: Простая авторизация, форма просмотра всех существующих заявок, создание и редактирование))
Теперь перейдем к коду: Напишем простой код подключения к нашей бд:
db.cs
internal class DB
{
MySqlConnection connection = new MySqlConnection("server=localhost;port = 3306; username = root; password = root; database = *ваша бд*");
public void openConnnection()
{
if (connection.State == System.Data.ConnectionState.Closed)
connection.Open();
}
public void closeConnnection()
{
if (connection.State == System.Data.ConnectionState.Open)
connection.Close();
}
public MySqlConnection getConnection()
{
return connection;
}
}
Продолжение:
3. Создаем форму авторизации, в ней 2 текстбокса, 1 кнопка вход
namespace TEST
{
public partial class LoginForm : Form
{
public LoginForm()
{
InitializeComponent();
this.PassField.AutoSize = true;
this.PassField.Size = new Size(this.PassField.Size.Width, 50);
}
private void button1_Click(object sender, EventArgs e)
{
String loginUser = LoginField.Text;
String passUser = PassField.Text;
if (string.IsNullOrEmpty(loginUser) || string.IsNullOrEmpty(passUser))
{
MessageBox.Show("Введите логин и пароль");
return;
}
DB db = new DB();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand("SELECT * FROM users WHERE login = @ul AND pass = @up", db.getConnection());
command.Parameters.Add("@ul", MySqlDbType.VarChar).Value = loginUser;
command.Parameters.Add("@up", MySqlDbType.VarChar).Value = passUser;
adapter.SelectCommand = command;
adapter.Fill(table);
if (table.Rows.Count > 0)
{
this.Hide();
MainForm mainForm = new MainForm();
mainForm.Show();
}
else
{
MessageBox.Show("Неправильный логин или пароль");
}
}
}
РЕГИСТРАЦИЯ:
public partial class RegisterForm : Form
{
public RegisterForm()
{
InitializeComponent();
userFioField.Text = "Введите имя";
userFioField.ForeColor = Color.Gray;
}
private void userNameField_Enter(object sender, EventArgs e)
{
if (userFioField.Text == "Введите имя")
{
userFioField.Text = "";
userFioField.ForeColor = Color.Black;
}
}
private void userNameField_Leave(object sender, EventArgs e)
{
if (userFioField.Text == "")
{
userFioField.Text = "Введите имя";
userFioField.ForeColor = Color.Gray;
}
}
private void Register_Click(object sender, EventArgs e)
{
if (userFioField.Text == "Введите имя" userFioField.Text == "")
{
MessageBox.Show("Введите имя");
return;
}
if (UserPhoneField.Text == "Введите Фамилию" UserPhoneField.Text == "")
{
MessageBox.Show("Введите фамилию");
return;
}
if (passwordField.Text == "Введите логин" passwordField.Text == "")
{
MessageBox.Show("Введите логин");
return;
}
if (type.Text == "Введите пароль" type.Text == "")
{
MessageBox.Show("Введите пароль");
return;
}
if (isUserExist())
{
return;
}
DB db = new DB();
MySqlCommand command = new MySqlCommand("INSERT INTO users (fio, phone, login, password, type) VALUES (@fio, @phone, @login, @password, @type);", db.getConnection());
command.Parameters.Add("@fio", MySqlDbType.VarChar).Value = userFioField.Text;
command.Parameters.Add("@phone", MySqlDbType.VarChar).Value = UserPhoneField.Text;
command.Parameters.Add("@login", MySqlDbType.VarChar).Value = loginUsers.Text;
command.Parameters.Add("@password", MySqlDbType.VarChar).Value = passwordField.Text;
command.Parameters.Add("@type", MySqlDbType.VarChar).Value = type.Text;
db.openConnnection();
if (command.ExecuteNonQuery() == 1)
MessageBox.Show("Аккаунт был создан");
else
MessageBox.Show("Аккаунт не был создан");
db.closeConnnection();
}
public Boolean isUserExist()
{
DB db = new DB();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand("SELECT * FROM users WHERE login = @ul", db.getConnection());
command.Parameters.Add("@ul", MySqlDbType.VarChar).Value = passwordField.Text;
adapter.SelectCommand = command;
adapter.Fill(table);
if (table.Rows.Count > 0)
{
MessageBox.Show("Такой логин уже есть, введите другой");
return true;
}
return false;
}
private void RegisterLabel_Click(object sender, EventArgs e)
{
this.Hide();
LoginForm loginform = new LoginForm();
loginform.ShowDialog();
}
}