Нет строки в позиции 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
перед выполнением какого-либо кода, проверяющего содержимое строк, он проверит, есть ли на самом деле какие-либо строки, начинающиеся с них.