Member 10874581 Ответов: 1

Значение не входит в функцию


когда я вызываю эту функцию значения не приходят

Ошибка есть..
userName	The name 'userName' does not exist in the current context


Что я уже пробовал:

public static bool Login(string userName, string password, bool persistCookie = false)
       {

           SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Mystring"].ToString();
             var para = new DynamicParameters();
               para.Add("@UserName", userName);
               var para1 = new DynamicParameters();
               para1.Add("@password", password);

               var t  = con.Query<int>("login_pro", null, null, true, 0, CommandType.StoredProcedure).ToList().SingleOrDefault();
               if (t == 1)
               {
                   return true;
               }

               else
               {
                   return false;
               }
       }





когда я вызываю эту функцию
bool success = objIAccountData.Login(login.username, login.password, false);

F-ES Sitecore

Я не понимаю, как этот код может генерировать такую ошибку, вы уверены, что это соответствующий код?

Karthik_Mahalingam

опубликуйте класс для входа в систему

Richard Deeming

Почему вы не передаете параметры в свою хранимую процедуру?

Предполагая, что вы используете Щеголеватый[^], это должно выглядеть примерно так:

var para = new DynamicParameters();
para.Add("@UserName", userName);
para.Add("@password", password);

var t = con.Query<int>("login_pro", para, commandType: CommandType.StoredProcedure).SingleOrDefault();</int>


(Нет никакой необходимости звонить ToList если вы тогда собираетесь позвонить SingleOrDefault сразу же после.)

1 Ответов

Рейтинг:
2

OriginalGriff

Проверьте свой тип case: C# чувствителен к регистру, поэтому "userName" - это не то же самое, что"username".
Если ваш звонок ссылается на "имя пользователя":

bool success = objIAccountData.Login(login.username, login.password, false);
Возможно, ему нужно "имя пользователя"
bool success = objIAccountData.Login(login.userName, login.password, false);
Если вы последовательны в своих соглашениях об именах.