Как сохранить переменную сеанса в отдельной переменной - PullRequest
0 голосов
/ 16 октября 2018

Может кто-нибудь сказать мне, почему значение моего сеанса возвращает -1 при сохранении в базу данных на основе этого события btn Click.

       using (SqlConnection con = new SqlConnection(CS))
    {
        SqlCommand cmdManID = new SqlCommand("SELECT 
        managerID,userEmailAddress,userName FROM [MANAGER] ,[USER] WHERE 
        [MANAGER].managerID = [USER].userID AND [USER].userName= @Uname;",con);
        cmdManID.Parameters.Add(new SqlParameter("@Uname", 
        Session["UName"]));

        con.Open();
    }

        int manID = cmdManID.ExecuteNonQuery();

        //manID;



        con.Close();

1 Ответ

0 голосов
/ 16 октября 2018

Поскольку -1 - это именно тот результат, который вы должны ожидать на SELECT от ExecuteNonQuery:

"Для операторов UPDATE, INSERT и DELETE возвращаемое значение - это количество строк, затронутых командой.Если для вставляемой или обновляемой таблицы существует триггер, возвращаемое значение включает количество строк, на которые влияет операция вставки или обновления, а также количество строк, на которые влияет триггер или триггеры. Для всех других типов операторов возвращаемое значениеравно -1. Если происходит откат, возвращаемое значение также равно -1. "

https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.executenonquery?view=netframework-4.7.2

Если вы ожидаете только одно возвращаемое значение, вот для чего предназначен ExecuteScalar: https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.executescalar?view=netframework-4.7.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...