Из документов :
SqlDataReader
обеспечивает способ чтения потока только для пересылки строк с сервера SQL база данных.
Это означает, что вы не можете определить количество строк, возвращаемых вашим запросом, с помощью программы чтения.
Но тебе не нужно. Вы можете просто прочитать следующую строку, вызвав метод Read()
:
private void btnSubmitt_Click(object sender, RoutedEventArgs e)
{
using (var conn = new SqlConnection("Data Source=WINDOWS-B1AT5HC\\SQLEXPRESS;Initial Catalog=CustomerRelations;Integrated Security=True;"))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT TOP 1 CD_EMP_TYPE FROM [Users] WHERE [TX_EMPLOYEE] = @userName";
cmd.Parameters.AddWithValue("@userName", Environment.UserName);
using (var reader = cmd.ExecuteReader())
{
reader.Read();
int CD_EMP_TYPE = reader.GetInt32(0);
switch (CD_EMP_TYPE)
{
case 0:
{
Window1 AdminMenu = new Window1();
AdminMenu.Show();
this.Close();
break;
}
case 1:
{
MainWindow AnalystMenu = new MainWindow();
AnalystMenu.Show();
this.Close();
break;
}
default:
{
label1.Content = "SSO authentication unsuccessful. Please contact your database administrator";
break;
}
}
}
}
}
Если ваш запрос может вернуть несколько строк, вы должны вызвать Read()
в l oop. См. Ссылку на документацию выше для примера.