Untitled
unknown
plain_text
2 years ago
4.9 kB
19
Indexable
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;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button;
namespace lombard1
{
public partial class Register : Form
{
public Register()
{
InitializeComponent();
}
string connectionString = "server=localhost; user=root; password=123456; database=new_schema";
bool coincidences;
private void buttonReg_Click(object sender, EventArgs e)
{
coincidences = false;
if (textBoxPassword1.Text == textBoxPassword2.Text)
{
checkLogin();
if (!coincidences)
{
MySqlConnection conn = new MySqlConnection(connectionString);
conn.Open();
MySqlTransaction transaction = conn.BeginTransaction();
try
{
// 1. Вставка данных в таблицу sp_role
string cmdStringRole = "INSERT INTO `new_schema`.`sp_role` (`id_role`, `name_role`) " +
"VALUES (@idRole, @nameRole)";
MySqlCommand commandRole = new MySqlCommand(cmdStringRole, conn, transaction);
commandRole.Parameters.AddWithValue("@idRole", null); // Значение будет автоматически сгенерировано базой данных
commandRole.Parameters.AddWithValue("@nameRole", "Пользователь");
commandRole.ExecuteNonQuery();
// Получаем id, который был автоматически сгенерирован
long idRole = commandRole.LastInsertedId;
// 2. Вставка данных в таблицу account
string cmdStringAccount = "INSERT INTO `account` (`id_role`, `login`, `password`) " +
$"VALUES (@idRole, @login, @password)";
MySqlCommand commandAccount = new MySqlCommand(cmdStringAccount, conn, transaction);
commandAccount.Parameters.AddWithValue("@idRole", idRole); // Используем сгенерированный idRole
commandAccount.Parameters.AddWithValue("@login", textBoxLogin.Text);
commandAccount.Parameters.AddWithValue("@password", textBoxPassword1.Text);
commandAccount.ExecuteNonQuery();
// Если дошли до этого момента, фиксируем транзакцию
transaction.Commit();
DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
// В случае ошибки отменяем транзакцию
transaction.Rollback();
labelWrongData.Text = "Ошибка при выполнении транзакции: " + ex.Message;
labelWrongData.Visible = true;
}
finally
{
conn.Close();
}
}
else
{
labelWrongData.Text = "Этот логин уже существует";
labelWrongData.Visible = true;
}
}
else
{
labelWrongData.Text = "Пароли не совпадают";
labelWrongData.Visible = true;
}
}
void checkLogin()
{
MySqlConnection conn = new MySqlConnection(connectionString);
conn.Open();
string cmdString = "SELECT `login` FROM `account`";
MySqlCommand command = new MySqlCommand(cmdString, conn);
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
if (textBoxLogin.Text == reader["login"].ToString())
{
coincidences = true;
}
}
conn.Close();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
private void checkBoxPassword_CheckedChanged(object sender, EventArgs e)
{
}
}
}Editor is loading...
Leave a Comment