Untitled
unknown
plain_text
a year ago
4.9 kB
6
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