Мне нужна ваша помощь (глаза), чтобы понять, в чем я здесь не прав.
Итак, у меня возникла эта ошибка ...
![enter image description here](https://i.stack.imgur.com/P468F.png)
Вот что я делаю ...
Пользователь, вошедший в систему, имеет роль, у которой есть некоторые разрешения или нет.
Когда он вводит форму, приложениепроверяет разрешения пользователя на основе его роли.В этом случае он проверяет разрешения на навигацию и отключает кнопку «Добавить новый», которая запрещает пользователю добавлять новые данные.
Я должен сказать, что этот запрос или аналогичный, очень хорошо работает в других ситуациях и скомпилирован вSQL-запрос, он возвращает значение 0 или 1. Правильно.
А вот код в форме загрузки.
Extensions.UserInfo.ActiveButtons(Extensions.UserInfo.CurrentLoggedUser);
ActiveButtons - это статический метод, который отключает определенную кнопку, основанную на LoggedВ User ...
public static bool ActiveButtons(string user)
{
if (CanNavigate(CurrentLoggedUser) == true)
{
foreach (var button in Buttons)
{
if(button.Name == "novoToolStripMenuItem")
{
button.Visible = false;
}
else
{
button.Visible = true;
}
}
return true;
}
else
{
foreach (var button in Buttons)
{
button.Visible = false;
}
return false;
}
}
Метод CanNavigate, проверяет разрешение на таблицу ролей.Ее код ...
public static bool CanNavigate(string user)
{
bool result;
string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
string query = "SELECT tblRole.Navigate FROM tblRole INNER JOIN tblUser ON tblRole.RoleID = tblUser.RoleID WHERE tblUser.Username = @Username";
using (var con = new SqlConnection(query.ToString()))
{
using (var cmd = new SqlCommand(str, con))
{
con.Open();
cmd.Parameters.AddWithValue("@Username", user);
result = (bool)cmd.ExecuteScalar();
return result;
}
}
}
И, как вы видите, ошибка в этом методе по запросу SqlConnection ...
Итак, что с ним не так?
При отладке пользователь получает правильный CurrentLoggedUser!
Спасибо.