Я создал простую веб-страницу asp.net C#, в которой отображается имя пользователя, который вошел в систему, он работает нормально, но проблема в том, когда я ухожу страница открыта, и я обновить его или нажать любую кнопку на ней он дает мне ошибку, и я должен вернуться на страницу входа и снова войдите, чтобы ошибка идти, это сообщение об ошибке:Сведения об исключении: System.Data.SqlClient.SqlException: Неправильный синтаксис около '='
Неверный синтаксис рядом с '='. Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и где оно зарождается в коде.
Сведения об исключении: System.Data.SqlClient.SqlException: Неправильный синтаксис рядом с '='.
Source Error:
Line 22:
Line 23: conn.Open();
Line 24: SqlDataReader DR1 = cmd.ExecuteReader();
Line 25: if (DR1.Read())
вот мой код:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("select * from usersTable where user_id = "+ Session["userIdSession"], conn);
conn.Open();
SqlDataReader DR1 = cmd.ExecuteReader();
if (DR1.Read())
{
Label1.Text = DR1.GetValue(1).ToString();
}
else
{
conn.Close();
}
}
Каков тип столбца 'user_id'? Каков тип и значение 'Session [" userIdSession "]'? Отлаживайте свой код и рассказывайте нам. Вы всегда должны использовать [параметризованные запросы] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/). Этот тип конкатенаций строк открыт для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) атак. И используйте инструкцию 'using', чтобы распоряжаться своим соединением, командой и читателем. –
[SQL Injection alert] (http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - вы должны ** не ** объединять свои SQL-запросы - использовать ** параметризованные запросы ** вместо этого, чтобы избежать SQL-инъекций –