На основании предоставленных изображений, ошибка System.IndexOutOfRangeException: "Индекс находился вне границ массива." указывает на то, что вы пытаетесь получить доступ к элементу массива, которого не существует. В вашем случае, проблема может быть связана с обращением к table.Rows[0].ItemArray[1] и table.Rows[0].ItemArray[3].
Рассмотрим возможное решение:
Проверьте, что данные действительно возвращаются из запроса и что таблица содержит хотя бы одну строку.
Убедитесь, что массив ItemArray содержит достаточное количество элементов.
Измените код следующим образом, чтобы добавить проверку:
if (table.Rows.Count == 1)
{
var row = table.Rows[0];
if (row.ItemArray.Length > 3) // Проверьте, что в массиве достаточно элементов
{
var user = new CheckUser(row.ItemArray[1].ToString(), Convert.ToBoolean(row.ItemArray[3]));
MessageBox.Show("Вы успешно вошли!", "Успешно!", MessageBoxButtons.OK, MessageBoxIcon.Information);
MainForm frm1 = new MainForm(user);
this.Hide();
frm1.ShowDialog();
this.Show();
}
else
{
MessageBox.Show("Неправильный формат данных.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
MessageBox.Show("Такого аккаунта не существует.", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
}