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 MySql.Data.MySqlClient;
namespace bd_test_program
{
public partial class Form3 : Form
{
public static string constr = "server =31.31.196.8; user id=tytid; password =tytpass; persistsecurityinfo = True; port =3306; database =u0558875_default; SslMode = none";
public MySqlConnection conn = new MySqlConnection(constr);
public Form3()
{
conn.Open();
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar!=' ')
return;
else
e.Handled = true;
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != ' ')
return;
else
e.Handled = true;
}
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != ' ')
return;
else
e.Handled = true;
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length<4 || textBox2.Text.Length<5 || textBox3.Text.Length < 2)
{
MessageBox.Show("Некорректные данные для регистрации.");
}
else
{
try
{
string sql = "Select Login from Accounts WHERE Login = '" + textBox1.Text + "'";
MySqlCommand command = new MySqlCommand(sql, conn);
string name = command.ExecuteScalar().ToString();
MessageBox.Show("Аккаунт уже зарегистрирован");
}
catch (Exception Ex)
{
string reg = "INSERT INTO Accounts (ID, Login, Password, Name, Post) VALUES(NULL, '" + textBox1.Text + "', '" + textBox2.Text + "', '" + textBox3.Text + "', '" + "Неопределен')";
MySqlCommand registration = new MySqlCommand(reg, conn);
registration.ExecuteNonQuery();
}
}
}
}
}
Ошибка возникает при обработке ошибки catch (Expection Ex)
NullReferenceExceptionи так сообщает суть ошибки
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar!=' ')
return;
else
e.Handled = true;
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != ' ')
return;
else
e.Handled = true;
}
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != ' ')
return;
else
e.Handled = true;
}
кто вас надоумил вмешиваться в обработку этих событий? я не к тому что нельзя, просто надо хорошо понимать зачем? *Select Login from Accounts WHERE ...
не может дать Вам скалярное значение. Нужно либо запрос другой писать, либо вызывать другой метод на command.