Нет строки в позиции 0, на странице входа

Моя форма входа в систему раньше работала правильно, но, поскольку я добавила новую строку, чтобы получить LoginId зарегистрированного пользователя, она просто работает для первой записи (в таблице входа в систему), а для всех остальных показывает эту ошибку. позиция 0.

Вот мой код

SqlConnection con = new SqlConnection(@"Data Source=.\Aroona;Initial Catalog=ACSDatabase;Integrated Security=True;Pooling=False");
SqlDataAdapter loginadp = new SqlDataAdapter("SELECT * FROM Login WHERE username = '" + uName.Text + "' AND password = '" + pWord.Text + "' ", con);

DataTable dt = new DataTable();
loginadp.Fill(dt);
log_id = Convert.ToInt32(dt.Rows[0][0]);
// MessageBox.Show("Your ID is : " + log_id);
if (dt.Rows[0][0].ToString() == "1")
{
    if (uName.Text == "Admin")
    {
        MPageAdmin mpa = new MPageAdmin();
        mpa.Show();
        this.Hide();
    }
    else
    {
        Main_Page mp = new Main_Page(this.UserName,this.log_id);
        mp.Show();
        this.Hide();
    }
}
else
{
    label4.Visible = true;
    label4.Text = "Username or Password Incorrect!";
}

Я добавил эту строку

log_id = Convert.ToInt32(dt.Rows[0][0]);

Но дело в том, что это не сработает, даже если я уберу это.

Почему в таблице 0 нет строки с зельем?

1 ответ

Линия: There is no row at position 0. означает, что в вашей базе данных нет строк.

Проверьте dt когда вы пройдете по коду и заметите, что в нем не будет строк, скорее всего, имя пользователя или пароль неверны по сравнению с тем, что находится в базе данных.

Следуйте инструкциям на этом сайте, чтобы узнать, как проверить данные.

Также вы хотите проверить, если dt.Rows.Count != 0 перед выполнением какого-либо кода, проверяющего содержимое строк, он проверит, есть ли на самом деле какие-либо строки, начинающиеся с них.

Другие вопросы по тегам