C# Форма входа Ошибка "Нет строки в позиции 0" - PullRequest
0 голосов
/ 05 апреля 2020

Я новичок в C# кодировании. Когда я ввожу имя пользователя и пароль в приложении формы входа со значениями, уже сохраненными в базе данных SignUp, появляется ошибка Нет строки в позиции 0 ".

Ниже приведена ссылка на скриншот ошибки.

Снимок экрана: Сообщение об ошибке

Ниже приведен код, вызывающий проблемы.

private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "" || textBox2.Text == "")
    {
        MessageBox.Show("!!Please fill in both Username and Password!! ");
    }
    else
    {
        SqlConnection sqlcon = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=""C:\Users\Lenovo\Desktop\dev\C# .net\Aadi Paw Plethysmometer\Aadi Paw Plethysmometer\Database1.mdf"";Integrated Security=True");
        string query = "Select * from Signup where Username = '" + Username.Text.Trim() + "' and Password = '" + Password.Text.Trim() + "'";
        SqlDataAdapter sda = new SqlDataAdapter(query, sqlcon);
        DataTable dtbl = new DataTable();
        sda.Fill(dtbl);
        if (dtbl.Rows[0][0].ToString() == "1")
        {
            this.Hide();
            new Form2().Show();
        }
        else
        {
            MessageBox.Show("Invalid username or password");
            textBox1.Text = textBox2.Text = "";
        }
    }
}

Ниже приведен ссылка на скриншот таблицы данных регистрации.

Снимок экрана: таблица данных регистрации

1 Ответ

0 голосов
/ 05 апреля 2020

Если в БД не найдено никаких результатов, вы все еще пытаетесь получить доступ к строке 0 таблицы данных, которая не существует в качестве ваших состояний ошибки. Замените ваше состояние следующим образом .:

 if (dtbl.Rows.Count > 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...