У меня есть событие нажатия кнопки, которое проверяет условия в нескольких элементах ввода в форме. Текстовые поля, радио, комбинированные кнопки и т. Д.
Кроме того, метод проверяет, является ли текстовая запись для имени пользователя уникальной или уже существует в базе данных. Если пользователь удовлетворяет всем условиям, то с помощью оператора else активируется и записи сохраняются в базе данных.
Это метод ниже:
private void button2_Click_2(object sender, EventArgs e)
{
int Vid_Smetka;
if (radioNewAdmin.Checked)
{
Vid_Smetka = 1;
}
else
{
Vid_Smetka = 0;
}
if (txtNewUser.Text == String.Empty)
{
MessageBox.Show("Корисничкото име е празно. Ве молиме пополнете го полето.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (txtNewFullname.Text == String.Empty)
{
MessageBox.Show("Ве молиме пополнете го полето за целосно име и презиме.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (txtNewEmail.Text == String.Empty || !txtNewEmail.Text.Contains('@'))
{
MessageBox.Show("Ве молиме пополнете го полето за email. Користете валидна e-mail адреса.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (txtNewPassword.Text.Length < 6)
{
MessageBox.Show("Ве молиме внесете најмалку 6 карактери во лозинката.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (!txtNewPassword.Text.Any(x => char.IsUpper(x)))
{
MessageBox.Show("Ве молиме внесете барем една голема буква во лозинката.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (!txtNewPassword.Text.Any(x => char.IsLower(x)))
{
MessageBox.Show("Ве молиме внесете барем една мала буква во лозинката.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (txtNewPassword.Text != txtNewRepeatPassword.Text)
{
MessageBox.Show("Лозинките не се совпаѓаат. Ве молиме обидете се повторно.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (!radioNewAdmin.Checked && !radioNewUser.Checked)
{
MessageBox.Show("Ве молиме селектирајте тип на сметка.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (string.IsNullOrEmpty(comboNewFunction.Text))
{
MessageBox.Show("Ве молиме функција на корисникот на сметката во училиштето.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else if (txtNewUser.Text != String.Empty)
{
MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["#.Properties.Settings.ConnectionString"].ConnectionString);
conn.Open(); //Try to open the connection to the MySql database
//Check if there is a row with credentials entered in the form
MySqlDataAdapter sda = new MySqlDataAdapter("SELECT Count(*) FROM #.# WHERE Korisnik = '" + txtNewUser.Text + "'", conn);
DataTable dt = new DataTable();
sda.Fill(dt);
//Initiate a new connection string
if (dt.Rows[0][0].ToString() != "0")
{
MessageBox.Show("Корисничкото име е зафатено. Ве молиме обидете внесете уникатно.", "Потсетник", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
conn.Close();
}
else
{
var sqlCommand = "INSERT INTO #.#" +
"(Korisnik, Lozinka, Vid_Smetka, email, user_function, full_name) " +
"VALUES ('" + this.txtNewUser.Text + "', '" + this.txtNewPassword.Text + "', '" + Vid_Smetka + "', " +
"'" + this.txtNewEmail.Text + "', '" + this.comboNewFunction.Text + "', '" + this.txtNewFullname.Text + "');";
//Initiate a new connection string
try
{
using (MySqlConnection con = new MySqlConnection(conString))
{
MySqlCommand cmdDatabase = new MySqlCommand(sqlCommand, con);
con.Open();
MySqlDataReader myReader;
myReader = cmdDatabase.ExecuteReader();
dataGridView1.DataSource = loadData().Tables[0];
MessageBox.Show("Зачувано.", "Известување", MessageBoxButtons.OK, MessageBoxIcon.Information);
panelNew.Visible = false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Это, очевидно, довольно просто. Но по какой-то причине оператор else не выполняется, когда выполняются все остальные условия.
Я делаю ошибку с MySQLConnection? Любые намеки, где я могу ошибаться?